문자열이 주어 질때 가장 긴 팰린드롬(문자열을 반으로 접었을 때 대칭) 문자열을 부분을 출력해라!
"babad"
"bab" or "aba"
"cbbd"
"bb"
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]
# 에러 처리 문자열 길이가 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
글 감사합니당! 리트코드는 처음봐서 그러는데 백준보다 리트코드가 좋나요?? 영어라서 전 좀 겁나서요.. 뭐가 더 좋나요?