确定状态

最后一步:我们判断从0开始到最后一个字符的整一个字符串是否breakable,检查这个字符串中的substring是否在dict中,并且除掉substring的那一部分是否也可以breakable。

dp[i]表示0至i的字符串是否可以word break

状态转移方程

dp[i] = IsSubstringindict(j,i)&&dp[j]  (其中j=i......0);

初始条件和边界条件

dp[0]=true

计算顺序

dp[0]

dp[1]

dp[2]

......

dp[n]

class Solution {public boolean wordBreak(String s, List<String> wordDict) {Set<String> hashset = new HashSet<String>();for(String word:wordDict){hashset.add(word);}int n = s.length();boolean []dp = new boolean[n+1];dp[0]=true;for(int i=1;i<=n;i++){for(int j=i;j>=0;j--){if(!dp[j]) continue;String substring = s.substring(j,i);if(hashset.contains(substring)){dp[i]=true;break;}}}return dp[n];}
}

注意在代码里面我们可以用一个hashset去存储dict中的字符,加快我们查询的速度

动态规划实战6 leetcode-139. Word Break相关推荐

  1. 【记忆化递归+DP】LeetCode 139. Word Break

    LeetCode 139. Word Break Solution1: 记忆化递归的典型套路题 参考网址:https://zxi.mytechroad.com/blog/leetcode/leetco ...

  2. leetcode 139. Word Break | 139. 单词拆分(动态规划)

    题目 https://leetcode.com/problems/word-break/ 题解 时隔一天,再次遇到 dp 问题- 本题和 leetcode 375. Guess Number High ...

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

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

  4. 【DFS + 记忆化递归】LeetCode 140. Word Break II

    LeetCode 140. Word Break II Solution1:我的答案 纯DFS,在第31个case时超时,还是记录一下.. class Solution { // DFS public ...

  5. 动态规划——单词拆分(Leetcode 139)

    题目选自Leetcode 139.单词拆分 问题描述: 解题思路: 怎么想到用动态规划的? 题目的相关标签中有动态规划.(QAQ) dp数组怎么选? dp[i]: 表示子串s[0:i] 是否全部能拆分 ...

  6. 139. Word Break

    一.题目 1.审题 2.分析 给出一个字符串 S,一个字典表 dict,判断 S 是否能由 dict 中的字符串所组成,其中 dict 中的字符串能够多次使用. 二.解答 1.思路: 方法一. 使用一 ...

  7. 139. Word Break 单词拆分

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

  8. 【leetcode】Word Break(python)

    思路是这种.我们从第一个字符開始向后依次找,直到找到一个断句的地方,使得当前获得的子串在dict中,若找到最后都没找到.那么就是False了. 在找到第一个后,接下来找下一个断句处,当然是从第一个断句 ...

  9. 【Leetcode】139. 拆分词句(Word Break)

    Leetcode - 139 Word Break (Medium) 题目描述:给定一个字符串 s 与字典 wordDict,判断 s 是否能拆分成 wordDict 中的子字符串. Input: s ...

  10. Word Break Word Break II

    leetcode上面的两道动态规划题. 题目1 Word Break Given a string s and a dictionary of words dict, determine if s c ...

最新文章

  1. 【J2SE】学习基础
  2. [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)...
  3. c调用易语言串口,易语言串口API源码
  4. <马哲>商品二因素及其辩证关系2017-12-27
  5. 六十三、SpringBoot中的日志框架SLF4j的使用
  6. C语言学习之用牛顿迭代法求下面方程在1.5附近的根: 2x³-4x²+3x-6=0
  7. 算法—巧排扑克牌(C语言)
  8. (转) 通过UUID在vSphere虚拟机内外识别硬盘
  9. 一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay
  10. CSS的position属性
  11. Linux下wine最新版源码编译
  12. 政策的组合拳使得九月无法平凡
  13. 360全景偏移调整_360全景拼接之调水平
  14. 【原创干货】6000字、22个案例详解Pandas数据分析/预处理时的实用技巧,超简单...
  15. C# mschart 控件 框选 删除部分数据 及游标CursorX CursorY 使用
  16. 功能测试之电梯的测试用例【杭州多测师】【杭州多测师_王sir】
  17. 4万字【Python高级编程】保姆式教学,Python大厂高频面试题解析
  18. ISME:二型糖尿病患者中与牙周炎相关的龈下菌群
  19. 学习STM32单片机,从菜鸟到牛人就是这么简单
  20. 熊猫烧香病毒完整解决方案

热门文章

  1. [Linux_Ubuntu13] 声音很小前台无法调节的处理方法
  2. JavaScript高级程序设计学习笔记--BOM
  3. PHP每天自动更新静态文件下载地址,防盗链
  4. Intel与三星合作新移动操作系统Tizen 拥抱HTML5
  5. 模仿showModalDialog的总在最前
  6. 利用AJAX技术实现网页无刷新进度条显示
  7. jenkins+docker+nginx服务并访问vue项目
  8. java获取字符串实际编码_Java获取字符串编码方式
  9. RocketMQ消费端消息回退(消费重试)机制源码解析
  10. Java8新特性系列(序)