A - Mike and palindrome
阿新 • • 發佈:2017-05-05
nbsp == 字符串長度 cda problem eal iostream quotes aaa
Output
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
InputabccaaOutput
YESInput
abbccaOutput
NOInput
abcda
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