Word Break
Description:
Given a string s and a dictionary of words dict, determine if s can be break into a space-separated sequence of one or more dictionary words.
Example
Given s = “lintcode”, dict = [“lint”, “code”].
Return true because “lintcode” can be break as “lint code”.
Code:
超时
class Solution:
"""
@param: s: A string
@param: dict: A dictionary of words dict
@return: A boolean
"""
def wordBreak(self, s, dict):
# write your code here
if not s and not dict:
return True
maxL = 0
for i in dict:
maxL = max(maxL, len(i))
ls = len(s)
rec = [0]
dp = [False for _ in range(ls)]
for i in range(ls):
for j in rec:
if i-j>maxL:
continue
if s[j:i+1] in dict:
dp[i] = True
rec.append(i+1)
break
return dp[i]