思路:
创建两个数组,每个数组都对应26个字母, 所以,我们只需将输入的两个字符串中的字母放到提前创建好的数组中, 最后再判断这两个数组中的每一位是否相同,就可以判断出是否为变位词
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n,i;
char a[100],b[100];
cin>>n;
for(i=0;i<n;i++){
cin>>a>>b;
int f=strlen(a);
int l=strlen(b);
int flag=0;
int d[26]={0},h[26]={0};
if(f!=l) cout<<"No"<<endl;
else{
for(int j=0;j<f;j++){
d[a[j]-'a']++;
h[b[j]-'a']++;
}
for(int j=0;j<26;j++){
if(d[j]!=h[j])
flag++;
}
if(flag>0)
cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
}
return 0;
}