我感觉我没有找到我的错误的地方,请帮我指出一下,谢谢
题目描述
如果两个单词的组成字母完全相同,只是字母的排列顺序不一样,则它们就是变位词,两个单词相同也被认为是变位词。如tea 与eat , nic 与cin, ddc与dcd, abc与abc 等。你的任务就是判断它们是否是变位词。
输入
第一行一个N,表示下面有N行测试数据。每行测试数据包括两个单词,如tea eat ,它们之间用空格割开
输出
对于每个测试数据,如果它们是变位词,输出Yes,否则输出No.
样例输入
3
tea eat
ddc cdd
dee dde
样例输出
Yes
Yes
No
#include<stdio.h>
#include<string.h>
int main(){
int n,i,s=0,j,k,z,l,m=0;
char a[10005],b[10005];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s %s",a,b);
k=strlen(a);
for(j=0;j<k;j++){
if(a[j]==b[j]) m++;
}
if(m==k){
printf("NO\n");
m=0;}
else if(m!=k){
for(j=0;j<k-1;j++){
for(z=j;z<k;z++){
if(a[z]>a[j]){
l=a[z];
a[z]=a[j];
a[j]=l;
}
}
}
for(j=0;j<k-1;j++){
for(z=j;z<k;z++){
if(b[z]>b[j]){
l=b[z];
b[z]=b[j];
b[j]=l;
}
}
}
for(j=0;j<k;j++){
if(a[j]==b[j]) s++;
}
if(s==k) printf("YES\n");
else if(s!=k) printf("NO\n");
s=0;k=0;
}}
return 0;
}