(LeetCode)5. 가장 긴 팰린드롬 부분 문자열
by hutswing
(LeetCode)5. 가장 긴 팰린드롬 부분 문자열
문제
Longest Palindromic Substring - LeetCode
아이디어
- 투 포인터가 중앙을 중심으로 확장하는 형태로 풀이
코드
class Solution:
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-1]:
left-=1
right+=1
return s[left+1:right-1]
# 해당사항이 없을 때 빠르게 리턴
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), expand(i, i+2), key=len)
return result
배운점
- 기본적인 슬라이딩 윈도우 활용법에 대해서 배움
- max함수도 정렬기준을 key값으로 변경가능
Subscribe via RSS