[LeetCode] 5. Longest Palindromic Substring

원숭2·2022년 2월 10일
0

LeetCode

목록 보기
40/51

문제

풀이

  1. 먼저 길이가 2보다 작거나, s 자체가 palindrome 일 경우 바로 return 해 줌.
  2. 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

0개의 댓글