[파이썬 알고리즘 인터뷰] 가장 긴 팰린드롬 부분 문자열
2020. 12. 28. 15:40ㆍ노트/Algorithm : 알고리즘
# 6. 가장 긴 팰린드롬 부분 문자열
가장 긴 팰린드롬 부분 문자열을 출력하라.
예제1
* 입력
"babad"
* 출력
"bab"
예제2
* 입력
"cbbd"
* 출력
"bb"
# 슬라이딩 윈도우
# 팰린드롬 판별 및 투 포인터 확장
def expand(s,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
s="cbbd"
result = ""
# 슬라이딩 윈도우 우측으로 이동
for i in range(len(s)-1):
result = max(result, expand(s, i, i+1), expand(s, i, i+2), key = len)
result
>>> "bb"
'노트 > Algorithm : 알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 빗물 트래핑 (0) | 2020.12.31 |
---|---|
[파이썬 알고리즘 인터뷰] 두수의 합 (0) | 2020.12.29 |
[파이썬알고리즘 인터뷰] 그룹 애너그램 (0) | 2020.12.25 |
[파이썬 알고리즘 인터뷰] 가장 흔한 단어 (0) | 2020.12.24 |
[파이썬 알고리즘 인터뷰] 로그파일 재정렬 (0) | 2020.12.11 |