[编程题] 回文串
给定一个字符串,问是否能通过添加一个字母将其变为回文串。
输入描述:
一行一个由小写字母构成的字符串,字符串长度小于等于10。
输出描述:
输出答案(YES\NO).
输入例子:
coco
输出例子:
YES
#include<iostream>
#include<string>
using namespace std;
bool isPal(string str){
int len = str.length();
for(int i=0; i<len/2; i++)
if(str[i] != str[len-1-i])
return false;
return true;
}
bool fun(string str){
if(str.length() <= 2)
return true;
for(int i=0; i<str.length(); i++)
if( isPal( str.substr(0, i) + str.substr(i+1) ) )
return true;
return false;
}
int main(){
string str;
while(cin>>str){
cout<<(fun(str) ? "YES" : "NO")<<endl;
/*if(fun(str))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;*/
}
return 0;
}