题意:给定一个串问,是否能够精确的修改一个字母使得串变成回文串。
没看清楚题目,第一次wa是没有限定只修改一个字母,第二次wa没有考虑长度为奇数时,且本身为回文串时,中间的字符可以任意改。思路很简单,关键是要考虑全面
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
int main()
{
string str;
while(cin>>str)
{
int cnt=0;
int len=str.size();
int n = len/2;
for(int i=0;i<n;i++)//abcca
{
if(str[i]!=str[len-1-i])cnt++;
}
if(cnt==0&&len%2==1)
{
printf("YES\n");
continue;
}
if(cnt==1)printf("YES\n");
else printf("NO\n");
}
}