5. Longest Palindromic Substring

Doyeon Kim·2022년 11월 10일

코딩테스트 공부

목록 보기
135/171

가장 긴 Palindromic Substring을 반환하는 문제이다.

물로 일일이 탐색하는 brute force 방식이 있으나
n*n2 = o(n3) 의 시간복잡도가 걸린다.

또 다른 방법으로는 중간을 기점으로 양옆(왼,오)가 같은지 탐색하는 방법이 있다.

n*n => O(n2)의 시간이 걸린다

class Solution:
    def longestPalindrome(self, s: str) -> str:
        res = ""
        reslen = 0

        for i in range(len(s)):
			#개수가 홀수일 떄        
            l, r= i,i
            while l>=0 and r<len(s) and s[l] == s[r]:
                if (r-l+1)> reslen :
                    res = s[l:r+1]
                    reslen = r-l+1
                l -=1
                r +=1
             #짝수일때
            l, r = i, i+1
            while l>=0 and r<len(s) and s[l] == s[r]:
                if (r-l+1)> reslen :
                    res = s[l:r+1]
                    reslen = r-l+1
                l -=1
                r +=1

        return res
profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글