Word Break leetcode
来源:互联网 发布:三次元教学编程视频 编辑:程序博客网 时间:2024/04/28 20:10
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.
For example, given
s = "leetcode"
,
dict = ["leet", "code"]
.
Return true because "leetcode"
can be segmented as "leet code"
.
分析:
给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。刚开始对这道题的理解有偏差,以为只要切出来的某一部分在字典里就可以了,后来发现不是这样,
这道题的意思是说,输入的字符串可以切成N段,每一段都必须在字典中。
举个例子:
s = "aaaaaaa",
dict = ["aaaa", "aa"],
返回false。
如果输入是
s = "aaab",
dict = ["a", "b"],
返回true。
初始化布尔型 数组, f[s.length() + 1],长度为s的长度加1, f[0, 1, 2, .......i - 1, i ] ,
f[i]表示的是字符串s从开始到第i个元素是否能用字典里的词表示。
遍历从开始到结尾的每个元素,先判断前半部分是否在字典里,再判断后面的是否在字典里。
public class Solution { public boolean wordBreak(String s, Set<String> wordDict) { if (s == null || s.length() == 0) { return true; } int n = s.length(); boolean[] f = new boolean[n + 1]; //empty string is valid f[0] = true; for(int i=0; i<s.length(); i++){ if(f[i]){ for(int j=i+1; j<=s.length(); j++){ String sub = s.substring(i, j); if(wordDict.contains(sub)){ f[j]=true; } } } } return f[n]; }}
0 0
- leetcode Word Break & Word Break ||
- Leetcode: Word Break
- [leetcode]Word Break
- [leetcode]Word Break II
- LeetCode:Word Break
- LeetCode:Word Break II
- Leetcode: Word Break II
- [LeetCode] Word Break
- [LeetCode] Word Break II
- LeetCode: Word Break
- leetcode之Word Break
- [LeetCode]Word Break II
- [LeetCode]Word Break
- leetcode-Word Break
- LeetCode 之 Word Break
- leetcode word break
- LeetCode | Word Break
- LeetCode | Word Break II
- Intelij IDEA管理git之远程代码冲突解决方案
- Glide加载自定义图形形状
- 自己实现ORM框架
- 归并排序求数组小和和逆序对
- 淘忆项目之注册界面的修正归纳
- Word Break leetcode
- nginx,tengine,haproxy会话保持
- C++ Socket编程步骤
- 系统升级步骤
- Mybatis最入门---整合Spring
- Bitmap的inJustDecodeBounds属性
- C++ 著名类库整理
- linux 下redis 安装
- Android支付开发(微信)