题解 | 最长回文子串
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
s = input()
n = len(s)
max_len = 0
for i in range(n): # 使用中心扩展法
left = i # 情况一:回文字符串为'aba', 'abcba'等长度为奇数的情况
right = i # 此时的中心是同一个字符
length = 0
while left >= 0 and right < n and s[left] == s[right]: # 循环找到最大回文字符串
length = right - left + 1
left -= 1 # 左边-1
right += 1 # 右边+1
max_len = max(length, max_len)
left = i # 情况二:回文字符串为'abba', 'abccba'等长度为偶数的情况
right = i + 1 # 此时的中心为相邻的两个字符
length = 0
while left >= 0 and right < n and s[left] == s[right]:
length = right - left + 1
left -= 1
right += 1
max_len = max(length, max_len)
print(max_len)
