给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。
注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。
func wordBreak(s string, wordDict []string) bool {
length := len(s)
length2 := len(wordDict)
hashMap := make(map[string]bool, length2)
for _, v := range wordDict {
hashMap[v] = true
}
dp := make([]bool, length+1)
dp[0] = true
for i := 1; i <= length; i++ {
for j := 0; j < i; j++ {
if dp[j] && hashMap[s[j:i]] {
dp[i] = true
break
}
}
}
return dp[length]
}