题目描述:给你一个回文字符串 palindrome ,请你将其中 一个 字符用任意小写英文字母替换,使得结果字符串的字典序最小,且 不是 回文串。请你返回结果字符串。如果无法做到,则返回一个空串。
解题思路:只有长度为1时没办法破坏其他情况都从高位到低位都尽可能将字符替换为a
,不行的话直接将最后一个字符替换为b
,长度为奇数时不考虑替换最中间那个字符,因为替换了也没用还是回文串,代码如下:
class Solution:
def breakPalindrome(self, palindrome: str) -> str:
size = len(palindrome)
if size == 1: return ""
for i in range(size//2):
if palindrome[i] != 'a':
return palindrome[:i]+'a'+palindrome[i+1:]
return palindrome[:-1] + 'b'