题目

给你一个字符串 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/

算法----单词拆分相关推荐

  1. 代码随想录算法训练营day46 | 动态规划之背包问题 139.单词拆分

    day46 139.单词拆分 1.确定dp数组以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp[i] 139.单词拆分 题目链接 解题思路:单词就是物品,字 ...

  2. 代码随想录算法训练营第五十天|动态规划:139.单词拆分、多重背包理论基础、背包问题总结

    [139.单词拆分] 这个题目是一个背包问题.但是他稍微有点不太一样.在于这题判断能否装满背包是在判断单词是否出现在字典中,如果出现,就代表能装满. 背包是长度为i的字符串 物品是长度为i-j的子串 ...

  3. 代码随想录算法训练营第46天 | 动态规划 part08 ● 139.单词拆分 ● 关于多重背包 ● 背包问题总结篇

    #139 单词拆分 没做出来.我原来是把string放到dp里,不对,这种做法永远都不对.他问的是什么(能不能构成,true,false)就要放到dp里 (大部分题是这样)下面是不对的思路: 正确co ...

  4. Leetcode 139. 单词拆分

    Leetcode 139. 单词拆分 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/word-break/   本质上 ...

  5. python 单词拆分_python - 如何拆分没有空格的文本为单词列表?将组合单词拆分开...

    python - 如何拆分没有空格的文本为单词列表?将组合单词拆分开 很多时候,我们需要把一长串单词字符拆分开来,比如: 输入:"tableapplechairtablecupboard - ...

  6. LeetCode 140. 单词拆分 II

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

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

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

  8. 单词拆分—leetcode139

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

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

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

最新文章

  1. python中计算1到_如何在Python中计算-1 /(-343)^(1/3)为1/7?
  2. java异常处理机制详解
  3. java使用POI获取sheet、行数、列数
  4. 如何将 DateTime 转成 UnixTime ?
  5. 【HDU - 6447】YJJ's Salesman(降维dp,树状数组优化dp)
  6. X-006 FriendlyARM tiny4412 u-boot移植之Debug串口用起来
  7. lua_shared_dict的incr方法
  8. OC---Math公式
  9. java零基础从入门到精通(全)
  10. linux软件源怎么看,Linux软件源
  11. 大数据智能分析的未来发展趋势
  12. 作用域public,protected,private, 以及不写时的区别
  13. SVN报错The working copy needs to be upgraded
  14. c语言邻接表的普里姆算法,图的遍历和生成树求解实现(邻接矩阵、邻接表 —图的深度广度遍历算法的实现和最小生成树PRIM和KRU...
  15. Git学习系列15 HEAD ORIG_HEAD FETCH_HEAD detached HEAD
  16. WebGIS地图相关学习笔记
  17. 5G时代App和小程序是否会逐渐消失?
  18. mysql按笔划排序_mysql中怎么按姓氏笔画排序
  19. java/php/net/python中小型培训机构管理系统设计
  20. 怎样存钱力最大c语言,C语言问题 、//14.怎样存钱利最大 //假设银行整存整取存款不同期限的 月息利率 分别为: 0.63% 期限=1年 0....

热门文章

  1. 二维空间有没有厚度_平面设计并不平!空间构成了解一下
  2. python简单小游戏实现_python基础--小游戏简单实现
  3. getitemdata中参数设置
  4. sql 排序_SQL聚合与排序
  5. 提高WPF程序性能的几条建议
  6. 【Interfacenavigation】XML中的字体(27)
  7. Linux课程第六天学习笔记
  8. Linux shell编程学习实例与参数分析(一)
  9. 【Vegas原创】outlook发送时,报550 5.7.1 client does not have permissions to send as this sender解决方法...
  10. 组播技术中IP地址到MAC地址的映射