# 1328. Break a Palindrome ###### tags: `Leetcode` `Medium` `Palindrome` Link: https://leetcode.com/problems/break-a-palindrome/ ## 思路 $O(N)$ $O(N)$ 如果palindrome的长度为1,那么直接输出"" 否则检查一半的字串,如果有一个字母不是a,就替换成a,然后返回 如果一半的字串全是a,例如aba, aaaaa,就把最后一个字母换成b即可 ## Code java ```java= class Solution { public String breakPalindrome(String palindrome) { if(palindrome.length()==1) return ""; char[] charArray = palindrome.toCharArray(); for(int i = 0;i < charArray.length/2;i++){ if(charArray[i]!='a'){ charArray[i]='a'; return String.valueOf(charArray); } } //all 'a' case charArray[palindrome.length()-1]='b'; return String.valueOf(charArray); } } ``` c++ ```cpp= class Solution { public: string breakPalindrome(string palindrome) { int n = palindrome.length(); if(n==1) return ""; for(int i=0; i<n/2; i++){ if(palindrome[i]!='a'){ palindrome[i]='a'; return palindrome; } } palindrome[n-1]='b'; return palindrome; } }; ```