题目描述
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。
思路
动态规划
- 判断从当前切分,先检测一下切分点之前是否为True,
- 之后再看当前切分的单词是或否在字典中
- 首先需创建一个len(s)+1的一位数组(因为从首位切分时,0位之前为True)
- 最后返回数组最后一位保存的值
class Solution(object):
def wordBreak(self, s, wordDict):
"""
:type s: str
:type wordDict: List[str]
:rtype: bool
"""
if not s or not wordDict:
return False
dp=[False]*(len(s)+1)
dp[0]=True
for i in range(1,len(s)+1):
for j in range(i-1,-1,-1):
if dp[j] and s[j:i] in wordDict:
dp[i]=True
break
return dp[-1]