swustoj-0029-变位词

变位词
1000(ms)
65535(kb)
999 / 2722
Tags: 水题

如果两个单词的组成字母完全相同,只是字母的排列顺序不一样,则它们就是变位词,两个单词相同也被认为是变位词。如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;
}
发布了24 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Wutongyewan/article/details/79904001
今日推荐