UVa 1339

乱排后找映射 == 把出现次数排序后判断相等

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 5 using namespace std;
 6 char s1[105],s2[105];
 7 int num1[26],num2[26];
 8 int main()
 9 {
10     while(~scanf("%s%s",s1,s2))
11     {
12         int len=strlen(s1);
13         for(int i=0;i<26;i++) num1[i]=num2[i]=0;
14         for(int i=0;i<len;i++)
15         {
16             num1[s1[i]-'A']++;
17             num2[s2[i]-'A']++;
18         }
19         sort(num1,num1+26);
20         sort(num2,num2+26);
21         bool flag=1;
22         for(int i=0;i<26;i++) if(num1[i]!=num2[i])
23         {
24             flag=0;
25             break;
26         }
27         if(flag) puts("YES");
28         else puts("NO");
29     }
30 }
31 /*
32 JWPUDJSTVP
33 VICTORIOUS
34 MAMA
35 ROME
36 HAHA
37 HEHE
38 AAA
39 AAA
40 NEERCISTHEBEST
41 SECRETMESSAGES
42 */
我自倾杯,君且随意
原文地址:https://www.cnblogs.com/nicetomeetu/p/5348027.html