def solution(s):
def expand(left, right):
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return s[left+1 : right]
if len(s) < 2 or s == s[::-1]:
return len(s)
result = ''
for i in range(0, len(s)):
result = max(result, expand(i, i+1), expand(i, i+2), key = len)
return len(result)
[알고리즘] 가장 긴 팰린드롬 부분 문자열
파이썬 알고리즘 인터뷰 책에 나왔던 리트코드 문제와 완전히 동일하다.
def longest_palindrom(s):
# 함수를 완성하세요
return len(s) if s[::-1] == s else max(longest_palindrom(s[:-1]), longest_palindrom(s[1:]))