[LeetCode] 5. Longest Palindromic Substring

2021. 1. 7. 00:48Problem Solving/LeetCode

https://leetcode.com/problems/longest-palindromic-substring/

 

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

내 풀이

class Solution:
    def longestPalindrome(self, s: str) -> str:
        if len(s) < 2 or s[:] == s[::-1]:
            return s

        palindrome = []
        length = len(s)
        start = 0
        end = 0

        while(start != length-1):
            if end == length:
                start += 1
                end = start
            tmp = s[start:end+1]
            if tmp[:] == tmp[::-1]:
                palindrome.append(tmp)
            end += 1

        if len(palindrome) == 0:
            return s[0]
        else:
            return sorted(palindrome, key=len).pop()

고민의 흔적

 

뭔 짓을 해도 타임 에러가 나서 고민하다가 책을 슬쩍 봤다..
처음 두줄

if len(s) < 2 or s[:] == s[::-1]:
            return s

은 생각도 못했는데 예외처리를 통해 속도 향상이 가능하다는 것이다.(파이썬 알고리즘 인터뷰 p.161)
문제풀이를 많이 해야 하는 이유가 바로 이런 것이라고 생각한다. 이 교훈은 진짜 잊으면 안되겠다.

 

책 정보

파이썬 알고리즘 인터뷰
국내도서
저자 : 박상길
출판 : 책만 2020.07.15
상세보기
반응형

'Problem Solving > LeetCode' 카테고리의 다른 글

[LeetCode] 15. 3Sum  (0) 2021.01.10
[LeetCode] 1. Two Sum  (1) 2021.01.07
[LeetCode] 49. Group Anagrams  (0) 2021.01.06
[LeetCode] 819. Most Common Word  (0) 2021.01.05
[LeetCode] 937. Reorder Data in Log Files  (0) 2021.01.04