Problem:Mike and palindrome
Description:
Mike has a string s consisting of only lowercase English letters. He wants to change 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.
Input:
The first and single line contains string s (1 ≤ |s| ≤ 15).
Output:
Print “YES” (without quotes) if Mike can change exactly one character so that the resulting string is palindrome or “NO” (without quotes) otherwise.
Sample Input 1:
abccaa
Sample Output 1:
YES
Sample Input 2:
abbcca
Sample Output 2:
NO
Sample Input 3:
abcda
Sample Output 3:
YES
Language:C
#include <stdio.h>
#include <string.h>
int main()
{
char s[15];
gets(s);
int n=strlen(s);
int count=0;
int i;
for(i=0;i<n/2;i++)
{
if(s[i]!=s[n-i-1]) count++;
if(count>1) break;
}
if((count==0&&n%2==1)||count==1) printf("YES\n");
else printf("NO\n");
return 0;
}