https://leetcode.com/problems/longest-palindromic-substring/submissions/
풀이 과정
- DP로 풀이하는게 정석이라고 하지만 문자열 최대 길이가 1000이므로 브루트포스로 풀수 있을것이라고 생각함.
- 현재 위치가 i라고 하면, i 기준으로 문자를 하나씩 늘려가면서 펠린드롬이라면 문자열을 갱신하는 방식으로 코드 작성
- 시간 초과가 발생. 시간을 조금 절약하기 위해 정답 문자열의 길이 + 1부터 문자를 하나씩 늘려가도록 변경
- 위 방식으로 코드를 작성하니 시간 초과가 해결됨.
소스 코드
class Solution:
def longestPalindrome(self, s: str) -> str:
answer = ""
def checkPalindrome(s):
return s == s[::-1]
for i in range(len(s)):
for j in range(len(answer)+1, len(s)-i+1):
if checkPalindrome(s[i:i+j]):
answer = s[i:i+j] if len(answer) < j else answer
return answer
'알고리즘[Python] > LeetCode' 카테고리의 다른 글
[4] [ queue ] Median of Two Sorted Arrays (0) | 2021.08.28 |
---|---|
[2] [Linked List] Add Two Numbers (0) | 2021.08.28 |
[ 23 ] [ heap ] Merge k Sorted Lists (0) | 2021.08.20 |
[ 98 ] [ Recursion ] Validate Binary Search Tree (0) | 2021.08.15 |
[ 3 ] [ Queue, set ] Longest Substring Without Repeating Characters (0) | 2021.08.15 |