5. Longest Palindromic Substring
# Medium
Solution 1: radical extend
class Solution(object):
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
# edge case
if len(s) <= 1:
return s
# regular case
res = []
res_len = 0
for i in range(len(s)):
left, right = i, i
# if the longest palindromic substring is odd, 奇数
while left >=0 and right < len(s) and s[left] == s[right]:
if right - left + 1 > res_len:
res = s[left:right+1]
res_len = right - left + 1
left -= 1
right += 1
# if the longest palindromic substring is even,偶数
left, right = i, i+1
while left >= 0 and right < len(s) and s[left] == s[right]:
if right - left + 1 > res_len:
res = s[left:right+1]
res_len = right - left + 1
left -= 1
right += 1
return resSolution 2: Dynamic Programming
Last updated