5. Longest Palindromic Substring 最长的回文子串
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: "babad" Output: "bab" Note: "aba" is also a valid answer.
Example:
Input: "cbbd" Output: "bb"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | class Solution1: def longestPalindrome(self, s): """ :type s: str :rtype: str """ res = "" for i in range(len(s)): j = i + len(res) + 1 while j <= len(s): cur = s[i:j] if len(cur) > len(res) and cur == cur[::-1]: res = cur j += 1 return resclass Solution2: def longestPalindrome(self, s): if len(s) == 0: return "" maxLen = 1 start = 0 for i in range(len(s)): cur = s[i - maxLen - 1:i + 1] if i - maxLen >= 1 and cur == cur[::-1]: start = i - maxLen - 1 maxLen += 2 continue cur = s[i - maxLen:i + 1] if i - maxLen >= 0 and cur == cur[::-1]: start = i - maxLen maxLen += 1 return s[start:start + maxLen]s = "babad"#s = "cbbd"solution = Solution2()res = solution.longestPalindrome(s)# print(res) |

浙公网安备 33010602011771号