描述
给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。
所谓回文串,指左右对称的字符串。
所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串
(注意:记得加上while处理多个测试用例)
输入描述:
输入一个仅包含小写字母的字符串
输出描述:
返回最长回文子串的长度
#暴力解法
'''
while True:
try :
l = input()
result= 0 #存放最大长度
for i in range(len(l)): #从第一个字符开始遍历
maxL = result + 1 #存放最大长度+1
while i + maxL < len(l):
if l[i:i+maxL] == l[i:i+maxL][::-1]:
result = maxL #存放新的最大长度
maxL += 1
print(result)
except:
break
'''
while True:
try:
s = input()
result = "" #存放回文子串
for i in range(len(s)): #遍历
start = max(0, i-len(result)-1) #精髓在此,下标减去回文串的长度-1,即是下一个判断的回文串的开头
temp = s[start: i+1] #回文串去掉头尾也是回文,所以加上头尾,判断是否是回文
if temp == temp[::-1]: #有偶数长度和奇数长度的回文,所以判断[0:i]和[1:i],直到有两个字符相同才开始有回文
result = temp
else:
temp = temp[1:]
if temp == temp[::-1]:
result = temp
if result:
print(len(result))
except:
break
网友评论