반응형
leetcode.com/problems/word-break/
class Solution:
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
if not s or not wordDict :
return False
words = set(wordDict)
n = len(s)
dp = [False]*(n+1)
dp[0] = True
for end in range(1, n+1) :
for start in range(n) :
if dp[start] and s[start:end] in words :
dp[end] = dp[start]
break
return dp[-1]
정리 :
처음 접근 방법은 위의 풀이와 비슷하지만 start를 바깥 for문에 선언하고 end를 안쪽 for문에 선언을 했다. end 루프를 바깥에 쓸때 좋은 점은 s[start:end]를 단어장에서 발견했을 때 안에 있는 for문을 바로 종료시킬 수 있기 때문.
반응형
'0 > leetcode' 카테고리의 다른 글
53. Maximum Subarray 풀이 (0) | 2020.11.18 |
---|---|
5. Longest Palindromic Substring 풀이 (0) | 2020.11.11 |
[October LeetCoding Challenge] 29th - Maximize Distance to Closest Person (0) | 2020.10.30 |
398. Random Pick Index (0) | 2020.10.27 |
388. Longest Absolute File Path (0) | 2020.10.27 |