xtuoj Can you raed it croretcly?
题目
思路
没啥技巧,我直接暴力了。首先有几种情况是可以提前判断的,如果两个字符串相等,注意这里不可以直接用==,字符串判断相等,要用到strcmp(a,b)==0,直接输出Equal。还有就是字符串长度不等,肯定No。首字母或者尾字母不同,直接No。
最后还剩下两种情况,一种就是字母内部字母只是交换了顺序,那肯定是Yes,另外一种,就是之间的字母不同,就是No。
同样也是统计字母频度。
代码
#include<stdio.h>
#include<string.h>
#include<ctype.h>char a[25],b[25];int main(){while(~scanf("%s %s",a,b)){int lenA=strlen(a);int lenB=strlen(b);if(strcmp(a,b)==0){printf("Equal\n");continue;}if(lenA!=lenB){printf("No\n");continue;}if(a[0]!=b[0]||a[lenA-1]!=b[lenB-1]){printf("No\n");continue;}int fA[26]={0};int fB[26]={0};for(int i=0;i<lenA;i++){if(isupper(a[i])) a[i]=tolower(a[i]);if(isupper(b[i])) b[i]=tolower(b[i]);fA[a[i]-'a']++;fB[b[i]-'a']++;}int flag=0;for(int i=0;i<26;i++){if(fA[i]!=fB[i]){flag=1;break;}}if(flag) printf("No\n");else printf("Yes\n");}return 0;
}