给定一个字符串“abcdcbadegtefetge” 得到最大回文字符串“egtefetge”
- 首先想到一个暴力解法:
找到所有子串,判断每一个子串是否是回文.即a==a[::-1]
def verifyreverse(st):
target = ''
flag = False
if st == st[::-1]:
target = st
else:
current = len(st) - 1
while current > 0:
for i in range(len(st) - current + 1):
tmp = st[i:i+current]
print(tmp)
if tmp == tmp[::-1]:
target = tmp
flag = True
break
if flag:
break
current -= 1
return target
print(verifyreverse("abcdcbadegtefetge"))
- 先判断整个是否是回文,yes 赋值
- list 切片。 第一次的时候,range(2) ,i 取值 0,1. 如果没有找到回文,那么current -1
- 第二次,range(3),
- 对每一个子串,判断回文。如果是,把当前子串赋值给target, 并且跳出