JZX轻语:简
LeetCode 1328 - 破坏回文串
发表于2024年07月29日
由于是回文串,所以只需要遍历前半部分即可。如果遇到非a
的字符,将其替换为a
并返回即可。如果前半部分全是a
(意味着后半部分也全是a
,注意如果字符串长度为奇数的话,中间那个字符不一定为a
,但也不能修改,因为改了之后还是回文),则将最后一个字符替换为b
即可。
# 0 1 <2> 3 4
# 0 1 2 <3> 4 5
# 0 1 2 <3> 4 5 6
class Solution:
def breakPalindrome(self, palindrome: str) -> str:
for i in range(len(palindrome) // 2):
if palindrome[i] != 'a':
return f"{palindrome[:i]}a{palindrome[i + 1:]}"
return "" if len(palindrome) <= 1 else f"{palindrome[:-1]}b"