zoukankan      html  css  js  c++  java
  • UVa 1339 Ancient Cipher --- 水题

      UVa 1339

      题目大意:给定两个长度相同且不超过100个字符的字符串,判断能否把其中一个字符串重排后,然后对26个字母一一做一个映射,使得两个字符串相同

      解题思路:字母可以重排,那么次序便不重要,可以分别统计两个字符串中的各个字母出现的次数,得到两个cnt[26]数组,

           又由于可以进行映射,则可以直接对两个数组进行排序后判断是否相等(相当于原来相等的值的两个地方做映射)

    /* UVa 1339 Ancient Cipher --- 水题 */
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    char a[105], b[105];
    int cnt1[30], cnt2[30];
    
    int main()
    {
    #ifdef _LOCAL
        freopen("D:\input.txt", "r", stdin);
    #endif
    
        while (scanf("%s%s", a, b) == 2){
            memset(cnt1, 0, sizeof cnt1);
            memset(cnt2, 0, sizeof cnt2);
            int len1 = strlen(a);
            int len2 = strlen(b);
    
            //0-25记录A-Z
            for (int i = 0; i < len1; ++i){
                ++cnt1[a[i] - 'A'];
                ++cnt2[b[i] - 'A'];
            }
    
            sort(cnt1, cnt1 + 26);
            sort(cnt2, cnt2 + 26);
    
            bool flag = 1;
            for (int i = 0; i < 26; ++i){
                if (cnt1[i] != cnt2[i]){
                    flag = 0;
                    break;
                }
            }
            printf("%s
    ", flag ? "YES" : "NO");
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    物理机连接虚拟机中的sqlserver
    Vue.js
    拆分时间段
    System.Threading.Timer
    浏览器被恶心页面占用
    sqlserver超时时间已到
    几年没写CSS
    C#生成高清缩略图
    抽奖概率算法
    html 页面实现指定位置的跳转
  • 原文地址:https://www.cnblogs.com/tommychok/p/5357616.html
Copyright © 2011-2022 走看看