题目
给你一个字符串
,找到
中最长的回文子串
解题
def expand_around_center(s, left, right):
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return s[left + 1:right]
def longest_palindrome(s):
if len(s) < 2:
return s
longest = ""
for i in range(len(s)):
# 奇数长度回文
odd_palindrome = expand_around_center(s, i, i)
if len(odd_palindrome) > len(longest):
longest = odd_palindrome
# 偶数长度回文
even_palindrome = expand_around_center(s, i, i + 1)
if len(even_palindrome) > len(longest):
longest = even_palindrome
return longest
# 测试例子
s = "babad"
print("最长回文子串:", longest_palindrome(s))
最长回文子串: bab