如何用指针解决(异构体)?
异构体是指两个字符串,有相同的字母组成,如果有不同的话仅有的不同点是字母的位置不一样。例如:abcd和abcd,dcba,acdb都是异构体,但是abcd和abcde或qwer就不是异构体。
输入两个字符串(长度不超过50),判断这两个字符串是不是异构体,并且输出。如果是则输出YES,不是输出NO。
Sample Input:
abcd bcda
Sample Output:
YES
#include<stdio.h> #include<string.h> #include<stdlib.h> void Sort(char a[]) { int i, j; char c; for (i = 0; i < strlen(a)-1; i++) { for (j = 0; j < strlen(a)-1; j++) { if (a[j] > a[j + 1]) { c = a[j]; a[j] = a[j + 1]; a[j + 1] = c; } } } } int main() { int i = 0; char *a = malloc(50); char *b = malloc(50); scanf("%s",a); scanf("%s", b); if (strlen(a) != strlen(b)) { printf("NO\n"); return 0; } Sort(a); Sort(b); if (strcmp(a, b)) { printf("NO\n"); } else { printf("YES\n"); } return 0; }
[此贴子已经被作者于2016-12-5 16:20编辑过]
[此贴子已经被作者于2016-12-5 21:39编辑过]