变位词
1000(ms)
65535(kb)
999 / 2722
如果两个单词的组成字母完全相同,只是字母的排列顺序不一样,则它们就是变位词,两个单词相同也被认为是变位词。如tea 与eat , nic 与cin, ddc与dcd, abc与abc 等。你的任务就是判断它们是否是变位词。
输入
第一行一个N,表示下面有N行测试数据。每行测试数据包括两个单词,如tea eat ,它们之间用空格割开
输出
对于每个测试数据,如果它们是变位词,输出Yes,否则输出No.
样例输入
3 tea eat ddc cdd dee dde
样例输出
Yes Yes No
AC代码:(c++版)
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; int main() { int n; char str1[100],str2[100]; cin>>n; int i,j; while(n--) { int a[26]={0}; cin>>str1; cin>>str2; int len1=strlen(str1); int len2=strlen(str2); for(i=0;i<len1;i++) { int t=str1[i]-'a'; a[t]++; } for(j=0;j<len2;j++) { int t=str2[j]-'a'; a[t]--; } int num=0; for(i=0;i<26;i++) { if(a[i]!=0) num++; } if(num==0) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }
(c语言版)
#include<stdio.h>#include<string.h>
int main()
{
int n;
char str1[100],str2[100];
scanf("%d",&n);
int i,j;
while(n--)
{
int a[26]={0};
scanf("%s",str1);
scanf("%s",str2);
int len1=strlen(str1);
int len2=strlen(str2);
for(i=0;i<len1;i++)
{
int t=str1[i]-'a';
a[t]++;
}
for(j=0;j<len2;j++)
{
int t=str2[j]-'a';
a[t]--;
}
int num=0;
for(i=0;i<26;i++)
{
if(a[i]!=0)
num++;
}
if(num==0)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}