[LeetCode] 5. Longest Palindromic Substring
2021. 1. 7. 00:48ㆍProblem Solving/LeetCode
https://leetcode.com/problems/longest-palindromic-substring/
내 풀이
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)
문제풀이를 많이 해야 하는 이유가 바로 이런 것이라고 생각한다. 이 교훈은 진짜 잊으면 안되겠다.
책 정보
|
반응형
'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 |