代码随想录day46【动态规划】单词拆分

单词拆分

力扣题目链接
dp数组含义:字符串长度为i,dp[i] 为true or false
递推公式:dp[i]= Boolean(i-j ) && dp[j] 。字符串下标区间为i-j 是否为 字典中的值。
初始化:dp[0]=true(递推起点),非零下标初始为false
遍历顺序:
先背包,后物品。(因为是有顺序的,字典中的值需要按照顺序拼成所需字符串)

var wordBreak = function(s, wordDict) {
    let dp=new Array(s.length+1).fill(false)
    dp[0]=true

    for(let i=0;i<=s.length;i++){
        for(let j=0; j<wordDict.length;j++){
            if(i >= wordDict[j].length) {
                if(s.slice(i-wordDict[j].length,i)=== wordDict[j]  && dp[i - wordDict[j]. length]){
                    dp[i]=true
                }
            }
        }
    }
    return dp[s.length]
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容