第一行一个N,表示下面有N行测试数据。每行测试数据包括两个单词,如tea eat ,它们之间用空格割开
对于每个测试数据,如果它们是变位词,输出Yes,否则输出No.
3 tea eat ddc cdd dee dde解:判断变位词,即判断俩个单词中每个字母的个数是否相同,由此我们可以得出两种方法,一种是比较慢的方法,先对字符串中的字母进行排序,然后使用函数strcmp去比较,如果结果为0,那么是变位词,否则不是第二种方法是比较快的,对于每一个字母,我赋予它一个质数,然后我把这些质数相乘得到单词的质数之积,然后比较,因为质数是唯一的,所以如果相乘的结果相等,那么是变位词,否则不是
#include<iostream>#include<algorithm>#include<cstring>using namespace std;int main(){ char s1[100], s2[100]; int n, i; cin >> n; while (n--) { cin >> s1 >> s2; int len1 = strlen(s1); int len2 = strlen(s2); sort(s1, s1 + len1);//对字母进行排序 sort(s2,s2+len2); if (strcmp(s1, s2) == 0)//对比每个字母,如果是相同的,那么就是变位词 { cout << "Yes" << endl; } else { cout << "No" << endl; } } return 0;}
posted on 2018-04-09 09:02 痒痒肉 阅读(1112) 评论(0) 编辑 收藏 举报
Powered by: 博客园 Copyright © 2024 痒痒肉 Powered by .NET 9.0 on Kubernetes