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. 破坏回文串
最新推荐文章于 2025-03-05 11:24:49 发布
本文介绍了一种解决回文串问题的算法,通过修改给定的回文串使其不再是回文,重点在于如何高效地找到并替换字符。讨论了字符串长度为奇数时的特殊情况,并提供了详细的代码实现。
335

被折叠的 条评论
为什么被折叠?



