알고리즘 | Algorithm

[LeetCode 리트코드] Longest Palindromic Substring | Python3 파이썬

개발자R 2021. 2. 15. 21:58
반응형

문제

Given a string s, return the longest palindromic substring in s

--> 주어진 문자열 s내의 가장 긴 펠린드롬을 찾아라

input : s = "babad"

output : "bab"

추가사항

 

  • 1 <= s.length <= 1000

 

 

나의 솔루션

class Solution:
    def longestPalindrome(self, s: str) -> str:
        length = len(s)
        result = ''
        for i, s_str in enumerate(s):
            if len(result) > len(s[i:]):
                return result
            j = -1
            while j < length - len(result):
                j += 1
                
                if s_str == s[length-1-j] and s[i: length-j] == s[i: length-j][::-1]:
                    result = s[i: length-j] if len(s[i: length-j]) > len(result) else result
                    break
        return result
        

 

깨달은 점

처음에 s[i: length-j] == s[i: length-j][::-1] 을 생각 못하고 그냥 함수를 만들어서 포문으로 isPalindrome을 만들었더니 시간초과가 떴다.... 단지 저것만 바꾸었을 뿐인데 제출이 되다니!!!

그런데 상당히 느리다... ㅜㅜ 아무래도 DP를 써서 다시 풀어봐야겠다.

 

결과

Submission Detail

반응형