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"

闪念标签:LC

题目链接:https://leetcode.cn/problems/break-a-palindrome/