思路:动态规划优化枚举
一个朴素的算法是:O(n2) 枚举所有子串,然后O(n)的判断这个子串是否是回文串,总复杂度O(n3) #code-switcher
class Solution:
def longestPalindrome(self, s: str) -> str:
# 判断 s[left:right] 这一段是否是回文串
def is_palindrome(left, right):
给定一个字符串 s,找到 s 中最长的回文子串。
输入包含一个字符串 s(1≤∣s∣≤1000),仅由数字和英文字母组成。
输出一行,表示 s 中最长的回文子串。如果存在多个答案,返回任意一个。
babad
bab
说明:aba 也是符合题意的答案。
cbbd
bb
s 仅由 数字 和 英文字母 组成。s 至少包含 1 个字符。