动态规划实战6 leetcode-139. Word Break
确定状态
最后一步:我们判断从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相关推荐
- 【记忆化递归+DP】LeetCode 139. Word Break
LeetCode 139. Word Break Solution1: 记忆化递归的典型套路题 参考网址:https://zxi.mytechroad.com/blog/leetcode/leetco ...
- leetcode 139. Word Break | 139. 单词拆分(动态规划)
题目 https://leetcode.com/problems/word-break/ 题解 时隔一天,再次遇到 dp 问题- 本题和 leetcode 375. Guess Number High ...
- leetcode 140. Word Break II | 140. 单词拆分 II(动态规划)
题目 https://leetcode.com/problems/word-break-ii/ 题解 由 leetcode 139. Word Break | 139. 单词拆分(动态规划) 改造而来 ...
- 【DFS + 记忆化递归】LeetCode 140. Word Break II
LeetCode 140. Word Break II Solution1:我的答案 纯DFS,在第31个case时超时,还是记录一下.. class Solution { // DFS public ...
- 动态规划——单词拆分(Leetcode 139)
题目选自Leetcode 139.单词拆分 问题描述: 解题思路: 怎么想到用动态规划的? 题目的相关标签中有动态规划.(QAQ) dp数组怎么选? dp[i]: 表示子串s[0:i] 是否全部能拆分 ...
- 139. Word Break
一.题目 1.审题 2.分析 给出一个字符串 S,一个字典表 dict,判断 S 是否能由 dict 中的字符串所组成,其中 dict 中的字符串能够多次使用. 二.解答 1.思路: 方法一. 使用一 ...
- 139. Word Break 单词拆分
Title 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字 ...
- 【leetcode】Word Break(python)
思路是这种.我们从第一个字符開始向后依次找,直到找到一个断句的地方,使得当前获得的子串在dict中,若找到最后都没找到.那么就是False了. 在找到第一个后,接下来找下一个断句处,当然是从第一个断句 ...
- 【Leetcode】139. 拆分词句(Word Break)
Leetcode - 139 Word Break (Medium) 题目描述:给定一个字符串 s 与字典 wordDict,判断 s 是否能拆分成 wordDict 中的子字符串. Input: s ...
- Word Break Word Break II
leetcode上面的两道动态规划题. 题目1 Word Break Given a string s and a dictionary of words dict, determine if s c ...
最新文章
- 【J2SE】学习基础
- [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)...
- c调用易语言串口,易语言串口API源码
- <马哲>商品二因素及其辩证关系2017-12-27
- 六十三、SpringBoot中的日志框架SLF4j的使用
- C语言学习之用牛顿迭代法求下面方程在1.5附近的根: 2x³-4x²+3x-6=0
- 算法—巧排扑克牌(C语言)
- (转) 通过UUID在vSphere虚拟机内外识别硬盘
- 一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay
- CSS的position属性
- Linux下wine最新版源码编译
- 政策的组合拳使得九月无法平凡
- 360全景偏移调整_360全景拼接之调水平
- 【原创干货】6000字、22个案例详解Pandas数据分析/预处理时的实用技巧,超简单...
- C# mschart 控件 框选 删除部分数据 及游标CursorX CursorY 使用
- 功能测试之电梯的测试用例【杭州多测师】【杭州多测师_王sir】
- 4万字【Python高级编程】保姆式教学,Python大厂高频面试题解析
- ISME:二型糖尿病患者中与牙周炎相关的龈下菌群
- 学习STM32单片机,从菜鸟到牛人就是这么简单
- 熊猫烧香病毒完整解决方案