输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。
输入: “cbbd” 输出: “bb”
来源:力扣(LeetCode)
思想:动态规划,轴对称,中心对称 代码:
class Solution: def longestPalindrome(self, s: str) -> str: # 两种判断条件:中心对称,轴对称 # 动态规划DP的方法 palindrome = '' for i in range(len(s)): #第一种判断条件为中心对称时:(实例一) length1 = len(self.GetLongestPalindrome(s, i, i)) if length1 > len(palindrome): palindrome = self.GetLongestPalindrome(s, i, i) #第二种判断条件为轴对称时: (实例二) length2 = len(self.GetLongestPalindrome(s, i, i+1)) if length2 > len(palindrome): palindrome = self.GetLongestPalindrome(s, i, i+1) return palindrome def GetLongestPalindrome(self, s, left, right): # 判断 s[left] == s[right]以及left>=0和right<len(s) while left >= 0 and right < len(s) and s[left] == s[right]: left-=1 right+=1 return s[left+1 : right]