A27659. 给你一个字符串 s,找到 s 中最长的回文子串。“如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。”输入s = "babad" 输出"bab" 解释"aba" 同样是符合题意的答案。
填空题
较易
知识点
题目描述
给你一个字符串 s,找到 s 中最长的回文子串。
“如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。”
输入
s = "babad"
输出
"bab"
解释
"aba" 同样是符合题意的答案。
参考答案
def longest_palindrome(s):
if len(s) < 2:
return s
def expand(left, right):
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return s[left + 1:right]
longest = ""
for i in range(len(s)):
odd_palindrome = expand(i, i)
even_palindrome = expand(i, i + 1)
longest = max(longest, odd_palindrome, even_palindrome,
key=len)
return longest
# 示例用法
s = "babad"
print("最长回文子串为:", longest_palindrome(s))
上一题
下一题