LeetCode 5. Longest Palindromic Substring
class Solution:
def longestPalindrome(self, s: str) -> str:
ans = ""
# odd
for i in range(len(s)):
front = i-1
end = i + 1
while front>=0 and end<len(s) and s[front] == s[end]:
front -= 1
end += 1
tmp_ans = s[front+1 : end]
if len(ans) < len(tmp_ans):
ans = tmp_ans
# even
for i in range(len(s)):
front = i
end = i + 1
while front>=0 and end<len(s) and s[front]==s[end]:
front -= 1
end += 1
tmp_ans = s[front+1 : end]
if len(ans) < len(tmp_ans):
ans = tmp_ans
return ans
左右対称の文字を先頭から見ていくと、文字列の長さが決まっていないので厄介。
そこで左右対称な文字列の真ん中の文字を基準にして、両側を確認していく