리트코드 5. Longest Palindrome Substring
"babad"
출력"bab"
"cbbd"
출력"bb"
def longestPalindrome(self, s: str) -> str:
# 팰린드롬 판별 및 투 포인터 확장
def expand(left: int, right: int) -> str:
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 s
result = ''
# 슬라이딩 윈도우 우측으로 이동
for i in range(len(s) - 1):
result = max(result,
expand(i, i + 1), # 짝수 2개의 투 포인터
expand(i, i + 2), # 홀수 2개의 투 포인터
key=len)
return result