当前位置: 首页 > news >正文

力扣-动态规划-139 单词拆分

思路

  1. dp数组定义:用wordDict数组可以完成不超过j的字符串的可能为dp[j]
  2. 递推公式:
    tmp = s.substr(j - wordDict[i].size(), wordDict[i].size());
    dp[j] = (dp[j - wordDict[i].size()] && wordDict[i] == tmp) || dp[j];
  3. dp数组初始化:dp[0] = true;
  4. 遍历顺序:由于算是排列问题,不同字典语句先后会影响判断,所以先遍历背包再遍历物品,当前容量在前一个容量完成了对所有物品遍历一遍
  5. 时间复杂度:O(n*m)     

代码

class Solution {
public:
    
    bool wordBreak(string s, vector<string>& wordDict) {
        vector<bool> dp(s.size() + 1, false);
        
        dp[0] = true;
        for (int j = 1; j <= s.size(); j++) {
            for (int i = 0; i < wordDict.size(); i++) {
                if (j >= wordDict[i].size()) {
                    string tmp;
                    tmp = s.substr(j - wordDict[i].size(), wordDict[i].size());
                    dp[j] = (dp[j - wordDict[i].size()] && wordDict[i] == tmp) || dp[j];
                }
            }
        }

        return dp[s.size()];
    }
};

相关文章:

  • 接上文 延申应用 halcon及代码
  • C#装箱拆箱机制详解
  • 可编辑73页PPT | DeepSeek自学手册-从理论模型训练到实践模型应用
  • Express + MongoDB 实现更新用户时用户名变化验证数据库是否存在,不变不验证
  • 使用Vue-Flow创建一个流程图可视化节点坐标查询器
  • SikuliX使用
  • java泛型是对范型参数类型的擦除
  • 自然语言处理:文本规范化
  • GDidees CMS v3.9.1本地文件泄露漏洞(CVE-2023-27179)
  • MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
  • 笔记二:整数和浮点数在内存中存储
  • 建模软件Blender与Blender GIS插件安装教程
  • spring-boot-starter和spring-boot-starter-web的关联
  • 如何搭建Web自动化测试框架?
  • MySQL 的索引类型有哪些?
  • SQLark 数据迁移|断点续迁已上线(Oracle-达梦)
  • 【JAVAEE】多线程
  • Day8、Vue3常见的几种API
  • MySQL保存超字段长度信息时如何正确截取
  • 【运维】SSH使用私钥打开隧道
  • 信息化建设 公司网站/百度关键字优化价格
  • 网站建设业务培训/seo搜外
  • 爱客crm网页版登录/广州:推动优化防控措施落地
  • 为公司做网站要做什么准备/好用的磁力搜索引擎
  • 青岛网站搭建/seo公司重庆
  • python创建wordpress/如何优化网站