Leetcode # 139. Word Break
- 2023.08.04
- ★★ Medium Dynamic Programming LeetCode
https://leetcode.com/problems/word-break
Solution
dp[i] := ∃ j < i s.t. dp[j] == True and s[j:i] in words
dp[0] := True
n := len(s)
m := len(wordDict)
k := max([len(w) for w in wordDict])
Time Complexity: O(n * m * k)
Space Complexity: O(n)
(The input and output generally do not count towards the space complexity.)
class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: dp = [False] * (len(s) + 1) dp[0] = True words = set(wordDict) for i in range(1, len(s) + 1): for j in range(i): if not dp[j]: continue if s[j:i] in words: dp[i] = True return dp[-1]
Last Updated on 2023/08/16 by A1go