l
e
e
t
c
o
d
e
[0][1][2][3][4][5][6][7]
dp
·
·
·
·
·
·
·
·
·
[0][1][2][3][4][5][6][7][8]
DP over prefixes
▸1def wordBreak(s, words):2 dict = set(words)3 dp = [False] * (n + 1)4 dp[0] = True # empty prefix5 for i in 1..n:6 for j in 0..i−1:7 # prefix splittable AND suffix is a word8 if dp[j] and s[j:i] in dict:9 dp[i] = True10 break11 return dp[n]
state
- s"leetcode"
- dict{leet, code}