对于一个字符串,我们想通过添加字符的方式使得新的字符串整体变成回文串,但是只能在原串的结尾添加字符,请返回在结尾添加的最短字符串。
给定原字符串A及它的长度n,请返回添加的字符串。保证原串不是回文串。
测试样例:
"ab",2
返回:"a"
class Palindrome {
public:
string addToPalindrome(string A, int n)
{
// write code here
int i=0;
string temp =A;
string s="";
while(i<n)
{
s= A[i]+s;
temp = A+s;
if( palindrome(temp))
{
break;
}
i++;
}
return s;
}
//判断字符串是否是回文
bool palindrome(string A)
{
string B =A;
reverse(A.begin(),A.end());
if(A==B)
return 1;
else
return 0;
}
};
string addToPalindrome(string A, int n) {
string s = A;
reverse(s.begin(),s.end()); // 取得翻转串
for(int i=0;i<n;i++) // Naive查找
if(A.substr(i,n-i)==s.substr(0,n-i))//求最长公共子串
return s.substr(n-i,i);//返回公共集后面剩余字符串
return string("");
}