class Solution:
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
# dp[j], 前j个字符能否拆分为一个或多个在字典中出现的单词
# 如果i < j, dp[i] = true 并且[i,j]在字典里
# dp[0] = true
dp = [True] + [False] * len(s)
for j in range(1, len(s) + 1):
for i in range(j):
if dp[i] and s[i:j] in wordDict:
dp[j] = True
return dp[len(s)]
这道题关键在于dp数组的含义,知道含义了之后。递推公式容易想到