Mike has a string s consisting of only lowercase English letters. He wants tochange exactly one character from the string so that the resulting one is a palindrome.
A palindrome is a string that reads the same backward as forward, for example strings "z", "aaa", "aba", "abccba" are palindromes, but strings "codeforces", "reality", "ab" are not.
The first and single line contains string s (1 ≤ |s| ≤ 15).
Print "YES" (without quotes) if Mike can changeexactly one character so that the resulting string is palindrome or "NO" (without quotes) otherwise.
abccaa
YES
abbcca
NO
abcda
YES
题意是给你一个字符串,只改变字符串中的一个字符能否使它变为回文的字符串,坑点在于像“aaa"这种,它改中间的字母也是可以变为字符串的,还有单个字母的字符串例如“a"也是可以的
#include<stdio.h>
#include<string.h>
int main(){
char str[100];
scanf("%s",str);
int count=0;
int i;
int len=strlen(str);
for(i=0;i<=len-i-1;i++){
if(str[i]!=str[len-i-1])
count++;
if(count>1)
break;
}
if(len%2==1&&(count==0||count==1))
printf("YES");
else{
if(count==1)
printf("YES");
else
printf("NO");
}
}