//由题意,字母间有对应关系,而且字符位置也可以随意变动
//所以,直接对两个字符串中每个字母出现的次数排序,看看相同位置相不相等即可
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int sort(const void *a,const void *b)
{
return *(int *)b-*(int *)a;
}
int main()
{
char s1[101];
char s2[101];
int number1[26];
int number2[26];
while(scanf("%s%s",s1,s2)!=EOF){
memset(number1,0,sizeof(number1));
memset(number2,0,sizeof(number2));
for(int i=0;s1[i];i++)
number1[s1[i]-'A']++;
for(int j=0;s2[j];j++)
number2[s2[j]-'A']++;
qsort(number1,26,sizeof(int),sort);
qsort(number2,26,sizeof(int),sort);
int flag=1;
for(int i=0;i<26;i++){
if(number1[i]!=number2[i]){
flag=0;
break;
}
}
if(flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
UVa 1339 Ancient Cipher(古老的密码)
最新推荐文章于 2022-01-13 16:43:06 发布