#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Duanhui{
bool pan_hui(string s){
int i;
bool flag=1;
for(i=0;i<s.size()/2;i++){
if(s[i]!=s[s.size()-1-i]){
flag=0;
break;
}
}
return flag;
}
public:int ministr(){
//给定字符串s(不带空格),在s前面添加字符变为最短回文串s1,求s1;
cout<<"输入字符串s:"<<endl;
string s;
cin>>s;
int i,j;
int m=1000;//最短回文长度
string s1="";
string ss;
string s2;
int len=s.size();
//翻转s
for(i=len-1;i>=0;i--){
s1+=s[i];
}
if(pan_hui(s)){ //s是回文直接输出
cout<<"最短回文串:"<<s<<endl;
}else{
//从长到短补齐,再检验,求最短
for(i=1;i<len;i++){
ss=s1+s.substr(len-i,i);
if(pan_hui(ss)){
if(ss.size()<m){
m=ss.size();
s2=ss;
}
}
}
cout<<"最短回文串:"<<s2<<endl;
}
return 0;
}
};
int main(){
Duanhui m;
m.ministr();
system("pause");
return 0;
}