给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:输入: "cbbd"
输出: "bb"来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法一:暴力法(超时)
class Solution:
def isPalindrome(self, sub_s:str) -> bool:
l = len(sub_s)
for i in range(int(l/2)):
if sub_s[i] != sub_s[l-i-1]:
return False
return True
def longestPalindrome(self, s: str) -> str:
l = len(s)
ans = ''
sub_len = 0
for i in range(l):
for j in range(i+1, l+1):
sub_s = s[i:j]
if (self.isPalindrome(sub_s)) and (len(sub_s) > sub_len):
ans = sub_s
sub_len = max(sub_len, len(ans))
return ans
时间复杂度:O(n^3)