POJ2159 Ancient Cipher

秒速五厘米 2022-07-11 12:11 244阅读 0赞

题目大意:字符串加密问题,采用字符替换和重新排列的综合方法加密。输入为加密串和字符串,不含空格的大写字母。

解题思路:两种加密方法在具体过程中应用并不唯一,即我们不知道具体的加密过程,所以只需统计出现字符的种类和不同种类次数,且排续后完全相同,则判定为加密字符串。

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. #define MAXN 260
  5. char strA[MAXN];
  6. char strB[MAXN];
  7. int cntA[MAXN];
  8. int cntB[MAXN];
  9. int main()
  10. {
  11. scanf("%s%s",strA,strB);
  12. int len=strlen(strB);
  13. for(int i=0;i<len;i++) cntA[strA[i]-'A']++;
  14. for(int i=0;i<len;i++) cntB[strB[i]-'A']++;
  15. sort(cntA,cntA+26);
  16. sort(cntB,cntB+26);
  17. bool ok=true;
  18. for(int i=0;i<26;i++)
  19. if(cntA[i]!=cntB[i])
  20. {
  21. ok=false;
  22. break;
  23. }
  24. if(ok) printf("YES\n");
  25. else printf("NO\n");
  26. return 0;
  27. }

发表评论

表情:
评论列表 (有 0 条评论,244人围观)

还没有评论,来说两句吧...

相关阅读

    相关 POJ2159 Ancient Cipher

    题目大意:字符串加密问题,采用字符替换和重新排列的综合方法加密。输入为加密串和字符串,不含空格的大写字母。 解题思路:两种加密方法在具体过程中应用并不唯一,即我们不