算法----单词拆分
题目
给你一个字符串 s 和一个字符串列表 wordDict 作为字典,判定 s 是否可以由空格拆分为一个或多个在字典中出现的单词。
说明:拆分时可以重复使用字典中的单词。
示例 1:
输入: s = “leetcode”, wordDict = [“leet”, “code”]
输出: true
解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。
示例 2:
输入: s = “applepenapple”, wordDict = [“apple”, “pen”]
输出: true
解释: 返回 true 因为 “applepenapple” 可以被拆分成 “apple pen apple”。
注意你可以重复使用字典中的单词。
示例 3:
输入: s = “catsandog”, wordDict = [“cats”, “dog”, “sand”, “and”, “cat”]
输出: false
提示:
1 <= s.length <= 300
1 <= wordDict.length <= 1000
1 <= wordDict[i].length <= 20
s 和 wordDict[i] 仅有小写英文字母组成
wordDict 中的所有字符串 互不相同
解决方法:
public boolean wordBreak(String s, List<String> wordDict) {HashSet<String> hashSet = new HashSet<>(wordDict);int length = s.length();boolean [] dp = new boolean[length+1];dp[0] = true;for (int i = 1; i <= length; i++) {for (int j = 0; j < i; j++) {if (dp[j] && hashSet.contains(s.substring(j,i))){dp[i] = true;break;}}}return dp[length];}
优秀题解:
https://leetcode-cn.com/problems/word-break/solution/dai-ma-sui-xiang-lu-139-dan-ci-chai-fen-50a1a/
参考:https://leetcode-cn.com/problems/word-break/
算法----单词拆分相关推荐
- 代码随想录算法训练营day46 | 动态规划之背包问题 139.单词拆分
day46 139.单词拆分 1.确定dp数组以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp[i] 139.单词拆分 题目链接 解题思路:单词就是物品,字 ...
- 代码随想录算法训练营第五十天|动态规划:139.单词拆分、多重背包理论基础、背包问题总结
[139.单词拆分] 这个题目是一个背包问题.但是他稍微有点不太一样.在于这题判断能否装满背包是在判断单词是否出现在字典中,如果出现,就代表能装满. 背包是长度为i的字符串 物品是长度为i-j的子串 ...
- 代码随想录算法训练营第46天 | 动态规划 part08 ● 139.单词拆分 ● 关于多重背包 ● 背包问题总结篇
#139 单词拆分 没做出来.我原来是把string放到dp里,不对,这种做法永远都不对.他问的是什么(能不能构成,true,false)就要放到dp里 (大部分题是这样)下面是不对的思路: 正确co ...
- Leetcode 139. 单词拆分
Leetcode 139. 单词拆分 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/word-break/ 本质上 ...
- python 单词拆分_python - 如何拆分没有空格的文本为单词列表?将组合单词拆分开...
python - 如何拆分没有空格的文本为单词列表?将组合单词拆分开 很多时候,我们需要把一长串单词字符拆分开来,比如: 输入:"tableapplechairtablecupboard - ...
- LeetCode 140. 单词拆分 II
文章目录 解法1:回溯 + 记忆数组,记录当前字符串 解法2:回溯 + 记忆数组,记录索引 `i` 到字符结尾的字符串能拆分的组合 https://leetcode-cn.com/problems/w ...
- 小米面试题:单词拆分
题目: 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字典中 ...
- 单词拆分—leetcode139
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字典中没有重复 ...
- leetcode 140. Word Break II | 140. 单词拆分 II(动态规划)
题目 https://leetcode.com/problems/word-break-ii/ 题解 由 leetcode 139. Word Break | 139. 单词拆分(动态规划) 改造而来 ...
最新文章
- python中计算1到_如何在Python中计算-1 /(-343)^(1/3)为1/7?
- java异常处理机制详解
- java使用POI获取sheet、行数、列数
- 如何将 DateTime 转成 UnixTime ?
- 【HDU - 6447】YJJ's Salesman(降维dp,树状数组优化dp)
- X-006 FriendlyARM tiny4412 u-boot移植之Debug串口用起来
- lua_shared_dict的incr方法
- OC---Math公式
- java零基础从入门到精通(全)
- linux软件源怎么看,Linux软件源
- 大数据智能分析的未来发展趋势
- 作用域public,protected,private, 以及不写时的区别
- SVN报错The working copy needs to be upgraded
- c语言邻接表的普里姆算法,图的遍历和生成树求解实现(邻接矩阵、邻接表 —图的深度广度遍历算法的实现和最小生成树PRIM和KRU...
- Git学习系列15 HEAD ORIG_HEAD FETCH_HEAD detached HEAD
- WebGIS地图相关学习笔记
- 5G时代App和小程序是否会逐渐消失?
- mysql按笔划排序_mysql中怎么按姓氏笔画排序
- java/php/net/python中小型培训机构管理系统设计
- 怎样存钱力最大c语言,C语言问题 、//14.怎样存钱利最大 //假设银行整存整取存款不同期限的 月息利率 分别为: 0.63% 期限=1年 0....
热门文章
- 二维空间有没有厚度_平面设计并不平!空间构成了解一下
- python简单小游戏实现_python基础--小游戏简单实现
- getitemdata中参数设置
- sql 排序_SQL聚合与排序
- 提高WPF程序性能的几条建议
- 【Interfacenavigation】XML中的字体(27)
- Linux课程第六天学习笔记
- Linux shell编程学习实例与参数分析(一)
- 【Vegas原创】outlook发送时,报550 5.7.1 client does not have permissions to send as this sender解决方法...
- 组播技术中IP地址到MAC地址的映射