1. 程式人生 > >A - Mike and palindrome

A - Mike and palindrome

nbsp == 字符串長度 cda problem eal iostream quotes aaa

A - Mike and palindrome

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.

Example

Input
abccaa
Output
YES
Input
abbcca
Output
NO
Input
abcda
Output
YES
題意輸入一個字符串,如果僅僅更改一個字符串能使字符串是回文就輸出YES,否則輸出NO;
題解:分類討論,如果字符串長度為偶數,對折比較只能有一對字符串不同;如果是奇數,對折比較有一對或零對字符串不同;
代碼
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char str[20];
    int i,l,j;
    while(cin>>str)
    {
        j=0;
        l=strlen(str);
        
for(i=0;i<l/2;i++) { if(str[i]==str[l-i-1]) j++; } if(l%2==1) { if(j==l/2||j==l/2-1) cout<<"YES"<<endl; else cout<<"NO"<<endl; } else { if(j==l/2-1) cout<<"YES"<<endl; else cout<<"NO"<<endl; } } }





A - Mike and palindrome