• 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题留念!!!

  • 相关阅读:
    Windows Internals 笔记——作业
    Windows Internals 笔记——终止进程
    数据结构与算法-java-数组实现队列和栈
    数据结构与算法-java-稀疏数组
    学习笔记-java两种核心机制-JVM和GC
    python-Django-学习笔记
    python爬虫-大二时候的学习笔记
    KMP算法
    Docker
    排序与查找
  • 原文地址:https://www.cnblogs.com/huangfeihome/p/2685059.html
Copyright © 2020-2023  润新知