一:题目

二:上码

class Solution {public:/**思路:1.分析题意单词就是物品;字符串就是背包;单词能否组成字符串就是在问,物品能不能将背包装满单词可以重复使用那么说明这是一个完全背包2.动态规划五步走1>:确定dp数组的与下标的含义(这里用下标i是由我们的遍历顺序决定的)dp[i] 表示的是 字符串长度为i的话  dp[i] = true;长度为i的字符串是可以拆分为一个或者多个在字典中出现的单词    2>:确定dp状态转移公式如果dp[j]是true的话 那么在[j,i]这个区间我们截取的字符串是出现在字典中的,那么dp[i]一定是true0-j是true的话  也就是字符串前面的字符出现在字典中,然后我们后面截取的字符串[i,j]也在字典中,那么我们就可以确定dp[i] = true  也就是长度为i的字符串一定出现在字典中3>:确定dp数组的初始化我们应该确定其该开始的时候都为false,因为我们还未开始查找    但是我们的dp[0]一定要为true 因为我们在计算的时候是需要前面的dp[j]=true的  否则将都会是false4>:确定dp数组的遍历顺序外层遍历背包;内层遍历物品5>:*/bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> ans(wordDict.begin(),wordDict.end());vector<bool> dp(s.size()+1,false);dp[0] = true;for(int i = 0; i <= s.size(); i++) {//遍历字符串也就是背包for(int j = 0; j < i; j++) {//遍历物品string str = s.substr(j,i-j);//从j开始  由i-j个字符if(ans.find(str) != ans.end() && dp[j] == true) dp[i] = true;}}return dp[s.size()];}
};


动态规划做的不少了 换个类型就不会了 我可能是个智障 略略略略略略

leetcode139. 单词拆分相关推荐

  1. LeetCode--139. 单词拆分(动态规划)

    单词拆分(动态规划) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python实现 1. 题目描述 难度:中等 2. 题目分析 这道题的难点在于示例3,字符串包含字典中的所有单词,但是就是 ...

  2. leetcode139 单词拆分

    给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字典中没有重复 ...

  3. Leetcode139.单词拆分

    题目描述: 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字 ...

  4. 单词拆分—leetcode139

    给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字典中没有重复 ...

  5. LeetCode 140. 单词拆分 II

    文章目录 解法1:回溯 + 记忆数组,记录当前字符串 解法2:回溯 + 记忆数组,记录索引 `i` 到字符结尾的字符串能拆分的组合 https://leetcode-cn.com/problems/w ...

  6. 小米面试题:单词拆分

    题目: 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字典中 ...

  7. leetcode 140. Word Break II | 140. 单词拆分 II(动态规划)

    题目 https://leetcode.com/problems/word-break-ii/ 题解 由 leetcode 139. Word Break | 139. 单词拆分(动态规划) 改造而来 ...

  8. LeetCode 140. 单词拆分 II(DP+回溯)

    1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中.返回所有这些可能的句子. 说明: 分隔时可以重复使 ...

  9. LeetCode 139. 单词拆分(DP)

    1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字 ...

最新文章

  1. IIRF重写在asp.net4.0+IIS6中部分失败的解决方案
  2. (Java集合框架)List接口
  3. 网易云信携手“瑶台”,打造元宇宙商业化实践标杆案例
  4. 【Oracle】Redhat6.5环境下安装oracle11G R2
  5. cnil在python_在Python中匹配组
  6. 背英语单词很困难,不妨学习一下词根词缀吧(每天10个词根、词缀)Part 2
  7. React开发(175):注意在回调里面重新渲染列表
  8. QQ连连看棋盘数组找法:
  9. 蚂蚁技术专家:一篇文章带你学习分布式事务
  10. odbc监控oracle,在zabbix下面使用ODBC 监控oracle数据库(11.2.0.3)和mysql数据库
  11. ie11rtm版升级到最新_解决将Office 2010 Beta升级到RTM(最终版)的问题
  12. 创客匠人工具助力教培机构快速适应线上教学
  13. git小乌龟新建分支、合并分支
  14. 如何修复win7蓝牙服务器,快速解决win7系统蓝牙驱动的修复方法
  15. java-设置电脑音量
  16. 群晖DSM桌面无法删除快捷方式(无法右键)解决方法
  17. 训练记录番外篇(2):2022 ICPC Gran Premio de Mexico 2da Fecha
  18. go-viper实践
  19. JS新版激流勇进附地图详解
  20. Python使用turtle库绘制动态满屏爱心代码

热门文章

  1. 登录工程:传统 Web 应用中的身份验证技术
  2. Docker for Windows使用简介
  3. 在.NET开发面向Oracle数据库的应用程序
  4. java程序猿面试问缺点怎么回答_JAVA程序员面试32问,你能回答多少题
  5. java产生的数字发送到页面_JAVA中数字证书的维护及生成方法
  6. 小组是什么意思_生猪期货什么时候上市?相关企业如何参与生猪期货
  7. Matlab clear, clc 和close函数
  8. Android之解决PC浏览器上传表单文件到手机服务器read数据错误导致有时候下载到手机的文件打开文字错乱问题
  9. 剑指offer之反向打印链表值
  10. Linux之软连接和硬链接