zoukankan      html  css  js  c++  java
  • 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题留念!!!

  • 相关阅读:
    学习进度条
    0302我的感想
    1217实验四 递归下降语法分析程序设计
    1118 实验三 有限自动机的构造与识别
    1112我的访问与评论日记
    1014 我的C语言文法定义与C程序推导过程
    0917词法分析
    命令解释程序的编写
    构建之法前三章读后感
    复利计算4.0
  • 原文地址:https://www.cnblogs.com/huangfeihome/p/2685059.html
Copyright © 2011-2022 走看看