-
Notifications
You must be signed in to change notification settings - Fork 13
/
5151.破坏回文串.py
49 lines (48 loc) · 1.46 KB
/
5151.破坏回文串.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 给你一个回文字符串
# palindrome ,请你将其中
# 一个
# 字符用任意小写英文字母替换,使得结果字符串的字典序最小,且
# 不是
# 回文串。
#
# 请你返回结果字符串。如果无法做到,则返回一个空串。
#
#
#
# 示例
# 1:
#
# 输入:palindrome = "abccba"
# 输出:"aaccba"
# 示例
# 2:
#
# 输入:palindrome = "a"
# 输出:""
#
# 提示:
#
# 1 <= palindrome.length <= 1000
# palindrome
# 只包含小写英文字母。
class Solution:
def breakPalindrome(self, palindrome: str) -> str:
if len(palindrome) == 1:
return ''
if len(palindrome) % 2 == 0:
for i in range(len(palindrome)):
if palindrome[i] != 'a':
palindrome = palindrome[:i] + 'a' + palindrome[i + 1:]
return palindrome
if i == len(palindrome) - 1 and palindrome[-1] == 'a':
palindrome = palindrome[:i] + 'b'
else:
for i in range(len(palindrome)):
if palindrome[i] != 'a' and i != len(palindrome) // 2:
palindrome = palindrome[:i] + 'a' + palindrome[i + 1:]
return palindrome
if i == len(palindrome):
continue
if i == len(palindrome) - 1 and palindrome[-1] == 'a':
palindrome = palindrome[:i] + 'b'
return palindrome