728x90
중앙을 중심으로 확장하는 풀이
def longestPalindrome(self, s: str) -> str:
def expand(left,right):
while left>=0 and right<=len(s)-1 and s[left]==s[right]:
left-=1
right+=1
return s[left+1:right]
if len(s)<=1 and s==s[::-1]:
return s
sol=''
for i in range(len(s)-1):
sol=max(sol,expand(i,i+1),expand(i,i+2),key=len)
return sol
- 문자열보다 더 긴 길이를 슬라이싱하더라도 가장 마지막 문자까지 슬라이싱됨->문법 오류가 나지 않음
- max() : key를 통해 기준 설정 가능
2, 3개짜리 틀을 슬라이싱하여 팰린드롬을 우선 찾고 이후 틀을 좌우로 확장하는 방법(중앙에서 확장하는 방법)을 통해 문제를 해결함.
반응형
'알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 3수의 합 (0) | 2022.02.21 |
---|---|
[파이썬 알고리즘 인터뷰] 빗물 트래핑 (0) | 2022.02.21 |
[파이썬 알고리즘 인터뷰] 두 수의 합 (0) | 2022.02.18 |
[파이썬 알고리즘 인터뷰]그룹 애너그램 (0) | 2022.02.18 |
[파이썬 알고리즘 인터뷰] 가장 흔한 단어 (0) | 2022.02.18 |