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

leetcode 动态规划(基础版)单词拆分

题目:

题解:

一种可行的dp做法是基于完全背包问题,将s看成是一个背包,wordDict看作是物品,然后往s中放入物品判断最终是否可以变为给定的s即可。这道题和上一题都用到了在dp如何枚举连续子串和状态表示:枚举右端点在这过程中枚举所有合理的左端点所有的区间即为合法的连续子串。

bool wordBreak(string s, vector<string>& wordDict) {set<string> se(wordDict.begin(),wordDict.end());int dp[305]={0};dp[0]=1;for(int i=1;i<=s.size();i++){for(int j=0;j<i;j++){if(se.find(s.substr(j,i-j))!=se.end()&&dp[j]){dp[i]=1;}}}return dp[s.size()];}

题后反思:

本题是左闭右开的连续子串枚举,根据题目的递推式将dp[0]=1;

http://www.lryc.cn/news/385813.html

相关文章:

  • Ubuntu/Linux调试安装南京来可CAN卡
  • vue2+TS获取到数据后自动叫号写法
  • 28、架构-边界:微服务的粒度
  • 开源API网关-ApacheShenYu首次按照启动遇到的问题
  • uniapp获取证书秘钥、Android App备案获取公钥、签名MD5值
  • QT 如何储存多种数据类型(QVariant )
  • 持续总结中!2024年面试必问的操作系统面试题(九)
  • 操作系统入门 -- 文件管理
  • 由浅入深,走进深度学习(2)
  • 【Python Tips】创建自己的函数包并安装进Anaconda,像引入标准包一样直接import导入
  • 【Python机器学习实战】 | 基于支持向量机(Support Vector Machine, SVM)进行分类和回归任务分析
  • 备份和还原
  • Java数组的初始化方法
  • 通过分离有色和无色pdf页面减少打印费
  • c语言--指针
  • python-九九乘法表(对齐式1)
  • thinkphp单独为某个接口设置缓存
  • OpenCV视觉--视频人脸微笑检测(超详细,附带检测资源)
  • docker 搭建 AI大数据模型 --- 使用GPU
  • 面向对象, 常用类, 集合, 异常, JDBC, mysql数据库 复习
  • js取数组最大值之Math.max、Math.max.apply
  • 各种中间件的安装
  • 【Mysql】多表查询、隐式内链接、显式内连接、左外连接、右外连接
  • Linux驱动开发(三)--新字符设备驱动开发 LED驱动开发升级
  • MCU的最佳存储方案CS创世 SD NAND
  • 40岁学习java是否需要报班学习?
  • Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试
  • 加固三防平板如何提高轨道交通系统的运营效率?
  • Django 靓号管理系统:实现登录功能
  • 【Solr 学习笔记】Solr 源码启动教程