给你一个回文字符串 palindrome
,请你将其中 一个 字符用任意小写英文字母替换,使得结果字符串的字典序最小,且 不是 回文串。
请你返回结果字符串。如果无法做到,则返回一个空串。
示例 1:
输入:palindrome = "abccba"
输出:"aaccba"
示例 2:
输入:palindrome = "a"
输出:""
提示:
1 <= palindrome.length <= 1000
palindrome
只包含小写英文字母。
C++
class Solution {
public:
bool help(string str)
{
if(0==str.size())
{
return true;
}
int left=0;
int right=str.size()-1;
while(left<right)
{
if(str[left]!=str[right])
{
return false;
}
left++;
right--;
}
return true;
}
string breakPalindrome(string palindrome)
{
vector<string> tmp;
int n=palindrome.size();
for(int i=0;i<n;i++)
{
string str=palindrome;
for(int k=0;k<26;k++)
{
char c=k+'a';
if(str[i]!=c)
{
str[i]=c;
if(!help(str))
{
tmp.push_back(str);
break;
}
}
}
}
sort(tmp.begin(),tmp.end());
if(0==tmp.size())
{
return "";
}
return tmp[0];
}
};