单词拆分
问题描述
class Solution(object):
def wordBreak(self, s, wordDict):
"""
:type s: str
:type wordDict: List[str]
:rtype: bool
"""
len_s = len(s)
dp = [False for _ in range(len_s+1)] # dp[i]表示s的前i项,能否拆分成wordDict中单词
# 因此dp[len_s]就代表整个字符串s能否拆分成wordDict中单词
# 我们默认wordDict中含有一个长度为0的空串""
dp[0] = True
for i in range(len_s):
for j in range(i+1,len_s+1):
if dp[i] and s[i:j] in wordDict: # 当s的前i项能拆分表示,且i到j项是否为wordDict中单词
dp[j] = True
return dp[-1]