测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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))
上一题 下一题