题目描述
回文串是一个正读和反读都一样的字符串,例如,“z”,“aaa”,“abba”是回文串。小万嗜好回文串,见到一个字符串,就尝试将其转换为回文串。如果一个字符串最多改变一个字符后成为回文串,就成为可转换回文串,如,“ytu”,“ab” 是转换回文串,而“computer”既不是回文串,也不是可转换回文串。请编写一个程序判定任意一个由小写字母组成的字符串是否为回文串或可转换回文串。
输入
字符串s(1<=|s|<=15)。
输出
如果s是回文串或可转换回文串,输出“YES”,否则输出“NO”。
样例输入
abccaa
样例输出
YES
答案
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
int i,j,n;
char s[100];
int num=0;
gets(s);
i=0;
j=strlen(s)-1;
while(i<=j)
{
if(s[i]!=s[j])
num++;
i++;
j--;
}
if(num<=1)
printf("YES\n");
else
printf("NO\n");
return 0;
}