http://codeforces.com/problemset/problem/798/A
题目大意,给出一个字符串,问是否可以变动某个字符使得字符串变成回文串。
坑点,exactly。确切的。你必须要改动字符。
代码如下:
#include<bits/stdc++.h>
using namespace std;
bool Check(char str[], int len, int mid)
{
for(int i = 0; i < mid; i++)
if(str[i] != str[len - i - 1])
return 0;
return 1;
}
int main()
{
char str[128];
int len, mid;
char ch;
bool flag = 0;
scanf("%s", str);
len = strlen(str);
mid = len / 2;
for(int i = 0; i < len; i++)
{
if(str[i] != str[len - i -1] || (i == mid && len % 2 == 1))
{
ch = str[i];
str[i] = str[len - i - 1];
if(Check(str, len, mid))
{
flag = 1;
break;
}
str[i] = ch;
}
}
if(flag)
printf("YES\n");
else
printf("NO\n");
return 0;
}