代码随想录算法训练营Day 46|139. 单词拆分、多重背包、背包总结

51 阅读1分钟

139. 单词拆分

题目链接

要求:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true

注意: 不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

思路

var wordBreak = function(s, wordDict) {
    let dp = Array(s.length+1).fill(false)
    let set = new Set(wordDict)
    dp[0] = true
    for(let i=0; i<=s.length; i++){
        for(let j=0; j<i; j++){
            let word = s.slice(j, i)
            if(set.has(word) && dp[j] == true){
                dp[i] = true
            }
        }
    }
    return dp[s.length]
};

多重背包

背包总结