[CF798A] Mike and palindrome(水题,trick)
题目链接:http://codeforces.com/contest/798/problem/A
题意:必须修改一个字符,问能不能形成回文串。
trick有两个:必须修改一个字符,以及奇数字符的时候,即使原本没修改也可以修改中间那个字符。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int maxn = 55; 5 char s[maxn]; 6 7 int main() { 8 // freopen("in", "r", stdin); 9 while(~scanf("%s", s)) { 10 bool exflag = 0, ok = 1; 11 int n = strlen(s); 12 for(int i = 0; i < n; i++) { 13 if(s[i] == s[n-i-1]) continue; 14 if(exflag) { 15 ok = 0; 16 break; 17 } 18 else { 19 s[n-i-1] = s[i]; 20 exflag = 1; 21 } 22 } 23 if(ok && exflag) puts("YES"); 24 else if(ok && n & 1) puts("YES"); 25 else puts("NO"); 26 } 27 return 0; 28 }