[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 }

 

posted @ 2017-05-17 14:11  Kirai  阅读(138)  评论(0编辑  收藏  举报