• POJ2159 Ancient Cipher


      原题传送:http://poj.org/problem?id=2159

      排序。题目说了两个加密方法,判断是否可以完成从加密串到原串的转换。这道题的本质是字符出现的频率按升序(或降序)排列后是否一样,而不关心该频率是从哪一个字母转换来的。

      做这道题的过程中出现了这样的错误需要惊醒自己:

      if(len = strlen(s1) != strlen(s2)

      {

        ......

      }

      我以为会先把strlen(s1)的值赋给len再和strlen(s2)比较,但不是这样的,是先比较了strlen(s1)和strlen(s2),然后把得到的布尔值赋给len。

      这道题不需要判断字符长度是否相等,题目已经说了前提是相等的了。

    View Code
     1 #include <stdio.h>
     2 #include <algorithm>
     3 #include <string.h>
     4 
     5 int h1[30], h2[30];
     6 char s1[105], s2[105];
     7 
     8 bool cmp(int a, int b){return a > b;}
     9 int main()
    10 {
    11     int i, len;
    12     while(scanf("%s%s", s1, s2) != EOF)
    13     {
    14         memset(h1, 0, sizeof h1);
    15         memset(h2, 0, sizeof h2);
    16         len = strlen(s1);
    17         for(i = 0; i < len; i ++)
    18             h1[s1[i] - 'A'] ++, h2[s2[i] - 'A'] ++;
    19         std::sort(h1, h1 + 26, cmp);
    20         std::sort(h2, h2 + 26, cmp);
    21         for(i = 0; i < 26 && h1[i] == h2[i]; i ++);
    22         if(i == 26)
    23             puts("YES");
    24         else
    25             puts("NO");
    26     }
    27     return 0;
    28 }

      mark:POJ 100题留念!!!

  • 相关阅读:
    高斯消元
    UVa12103
    UVa10294
    UVa11762
    牛客网算法工程师能力评估
    华为研发工程师编程题
    网易2017春招笔试真题编程题集合
    2017网易有道内推编程题
    2017网易雷火实习生招聘编程题
    数组---面试知识点整理
  • 原文地址:https://www.cnblogs.com/huangfeihome/p/2685059.html
Copyright © 2020-2023  润新知