还是那句话,理解题意之后,一切都好办了。。。
解题思路:假设所有 A~Z 的字母统计数序列为 C[k],对 C[k] 排序,两个序列是 YES 的充要条件是已排序C[k] 和 C'[k] 完全相同。
#include<stdio.h>
#include<string.h>
return *(int*)a-*(int *)b;
}
{
int num1[105],num2[105],flag;
int i,t1,t2,l1,l2;
char s1[105],s2[105];
while(scanf("%s",s1)!=EOF)
{
scanf("%s",s2);
l1=strlen(s1);
l2=strlen(s2);
memset(num1,0,sizeof(num1));
for(i=0;i<l1;i++){
t1=s1[i]-'A';
num1[t1]++;
}
qsort(num1,26,sizeof(num1[0]),cmp);
memset(num2,0,sizeof(num2));
for(i=0;i<l2;i++){
t2=s2[i]-'A';
num2[t2]++;
}
qsort(num2,26,sizeof(num2[0]),cmp);
flag=0;
for(i=0;i<26;i++){
if(num1[i]!=num2[i]){
flag=1;
break;
}
}
if(flag==0) printf("YES\n");
else printf("NO\n");
}
system("pause");
return 0;
}