class Solution {
public:
string breakPalindrome(string palindrome) {
/*首先如果字符串长度为奇数,则字符串中间的那个字符无论怎么改,字符串都是回文串。
如:aba,b字符无论怎么改,字符串都还是回文串。
回文串前半段和后半段是相互对应的,因此只要遍历一半就好了。
首先遍历前半段,遇到不为a的字符就直接将其替换成a,然后直接return结果。
如果前半段都是a,则说明后半段也都是a,说明字符串要么类似aabaa,要么类似aaaaaa。
直接将最后1个字符改成b就好了。*/
int len=palindrome.size();
bool flag=false;
int i=0;
if(len==1)
{
return "";
}
while(i<len/2)
{
if(palindrome[i]!='a')
{
palindrome[i]='a';
flag=true;
break;
}
i++;
}
if(flag==false)
{
palindrome[palindrome.size()-1]='b';
}
return palindrome;
}
};
LeetCode:1328. 破坏回文串
最新推荐文章于 2021-12-20 18:00:00 发布