题目描述
土豪大学的高富帅实验室里有一个回文帝,名叫小明。小明每次看到一个字符串的时候总喜欢看看它是不是回文串,如果这个字符串不是回文串的话,他就会将这个字符串里的字符重新排列,看看能不能构成回文串。
现在小明想让你写一个程序来帮助他实现上述过程。
输入格式
输入包含多组测试数据。每组输入包含一个字符串,长度不超过5,不包含空格等空白符。
提示:本题数据量不大,不必想复杂了。
输出
对于每组输入,如果输入的字符串本身就是回文串,或者将这个字符串里的字符重新排列后可以构成回文串,则输出Yes,否则输出No。
样例输入
qq
abc
aab
样例输出
Yes
No
Yes
#include <stdio.h>
#include <string.h>
int main()
{
char str[10];
while(scanf("%s", str) != EOF)
{
int len = strlen(str);
int num[150] = {0}, i, count = 0;
for(i = 0; i < len; i++)
{
num[str[i]]++;
if(num[str[i]] % 2 == 0)
count++;
}
if(len == 1) printf("Yes\n");
else if(len == 2)
{
if(str[0] != str[1])
printf("No\n");
else
printf("Yes\n");
}
else if(len == 3)
{
if(count >= 1)
printf("Yes\n");
else
printf("No\n");
}
else if(len == 5 || len == 4)
{
if(count >= 2)
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}