如何用指针解决(异构体)?
异构体是指两个字符串,有相同的字母组成,如果有不同的话仅有的不同点是字母的位置不一样。例如: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编辑过]