Zero to Hero
article thumbnail
Published 2021. 4. 1. 23:39
5. Longest Palindromic Substring Algorithm

 

 

Longest Palindromic Substring - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

1. DP를 이용한 풀이

class Solution(object):
    def longestPalindrome(self, s):
        dp=[[0]*len(s) for _ in range(len(s))]
        answer=s[0]
        for i in range(len(s)):
            dp[i][i]=1
        
        for i in range(len(s)-1):
            if s[i]==s[i+1]:
                dp[i][i+1]=1
                answer=s[i:i+2]
        
        for i in range(3,len(s)+1):
            for start in range(len(s)-i+1):
                end=start+i-1
                if s[start]==s[end] and dp[start+1][end-1]:
                    dp[start][end]=1
                    answer=s[start:end+1]
        return answer

 

2. 투 포인터(?)를 사용한 풀이

class Solution(object):
    def longestPalindrome(self, s):
        res=""
        for i in range(len(s)):
            res=max(self.solution(s,i,i),
                   self.solution(s,i,i+1),
                   res, key=len)
        return res
    
    
    def solution(self,s,start,end):
        while 0<=start and end<len(s):
            if s[start]==s[end]:
                start,end = start-1, end+1
            else:
                break
        return s[start+1:end]

'Algorithm' 카테고리의 다른 글

2105. [모의 SW 역량테스트] 디저트 카페  (0) 2021.04.04
15. 3Sum  (0) 2021.04.02
Python 코딩테스트 팁 01 - 전역 변수  (0) 2021.03.30
정수 내림차순으로 배치하기  (0) 2021.03.22
1781번: 컵라면 (Python)  (0) 2021.01.10
profile

Zero to Hero

@Doljae

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!