代码随想录 -- day46 --139.单词拆分

139.单词拆分

dpi : 字符串长度为i的话,dpi为true,表示可以拆分为一个或多个在字典中出现的单词

递推公式是 if(j, i 这个区间的子串出现在字典里 && dpj是true) 那么 dpi = true。

本题一定是 先遍历 背包,再遍历物品

cpp 复制代码
class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {
        unordered_set<string> wordSet(wordDict.begin(), wordDict.end());
        vector<bool> dp(s.size() + 1, false);
        dp[0] = true;
        for (int i = 1; i <= s.size(); i++) {   // 遍历背包
            for (int j = 0; j < i; j++) {       // 遍历物品
                string word = s.substr(j, i - j); //substr(起始位置,截取的个数)
                if (wordSet.find(word) != wordSet.end() && dp[j]) {
                    dp[i] = true;
                }
            }
        }
        return dp[s.size()];
    }
};
相关推荐
hanhahai40 分钟前
指针与函数(函数指针与指针函数)
算法
ValhallaCoder1 小时前
Leetcode-hot100(2026.08.17)
python·算法·leetcode
泡沫冰@1 小时前
GO 语言基础
开发语言·算法·golang
luj_17682 小时前
元设计的诱惑与现实
c语言·开发语言·c++·经验分享·算法
小星星闪亮登场2 小时前
ST表--倍增思想
开发语言·数据结构·c++·算法·思维
马可家的菠萝3 小时前
Vue3 + Canvas 手绘笔记工程化实践:别把画布只当成一张 PNG
前端·vue.js·算法
watersink3 小时前
机器学习极大似然估计与EM算法
人工智能·算法·机器学习
叠层归一研究院3 小时前
如何用程序搭建一个 AGI 种子系统(一):从向量种子到无限生长引擎
人工智能·python·算法·机器学习·agi
科学实验家3 小时前
并 查集
算法
AI服务老曹4 小时前
视觉算法模型管理性能优化指南:多版本平滑升级、灰度与快速回滚实战
算法·性能优化