문제
풀이
- 먼저 길이가 2보다 작거나, s 자체가 palindrome 일 경우 바로 return 해 줌.
- for문을 돌며 시작점을 정하고, 문자열이 palindrome이면 그 문자열을 return해주는 expand 함수를 선언하여 사용하여 값들을 비교 후, max가 되는 s값 return함.
코드
class Solution:
def longestPalindrome(self, s: str) -> str:
def expand(left, right) :
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
res = ''
for i in range(len(s)-1) :
res = max(res, expand(i, i+1), expand(i, i+2), key = len)
return res