Description
Given a string s
, return the longest palindromic substring in s
.
Example 1:
Input: s = "babad" Output: "bab" Explanation: "aba" is also a valid answer.
Example 2:
Input: s = "cbbd" Output: "bb"
Constraints:
1 <= s.length <= 1000
s
consist of only digits and English letters.
Solution
Python3
class Solution:
def longestPalindrome(self, s: str) -> str:
N = len(s)
if N == 1: return s
def pal(i, j):
while i >= 0 and j < N and s[i] == s[j]:
i -= 1
j += 1
i += 1
j -= 1
return s[i : j + 1]
res = ""
for i in range(N - 1):
res = max(res, pal(i, i), pal(i, i + 1), key = len)
return res