题目描述
如果两个单词的组成字母完全相同,只是字母的排列顺序不一样,则它们就是变位词,两个单词相同也被认为是变位词。如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> struct jj { char arr1[100]; char arr2[100]; }; int main() { struct jj stu[100]; char a, b; int n; scanf("%d", &n); int i,j,m; for (i = 0; i < n; i++) { scanf("%s%s", &stu[i].arr1, &stu[i].arr2); } for (i = 0; i < n; i++) { if (strlen(stu[i].arr1) != strlen(stu[i].arr2)) { printf("No\n"); } else { for (m = 0; m < strlen(stu[i].arr1) - 1; m++) { for (j = 0; j < strlen(stu[i].arr1) - 1 - m; j++) { if (stu[i].arr1[j] > stu[i].arr1[j + 1]) { a = stu[i].arr1[j]; stu[i].arr1[j] = stu[i].arr1[j + 1]; stu[i].arr1[j + 1] = a; } } } for (m = 0; m < strlen(stu[i].arr2) - 1; m++) { for (j = 0; j < strlen(stu[i].arr2) - 1 - m; j++) { if (stu[i].arr2[j] > stu[i].arr2[j + 1]) { b = stu[i].arr2[j]; stu[i].arr2[j] = stu[i].arr2[j + 1]; stu[i].arr2[j + 1] = b; } } } if (strcmp(stu[i].arr1, stu[i].arr2) == 0) { printf("Yes\n"); } else { printf("No\n"); } } } return 0; }
SWUST OJ29变位词
最新推荐文章于 2024-07-25 09:36:10 发布