Word Break
2016-05-23 16:47
169 查看
此题用dp解,初始化一个s.length()+1的布尔数组,当中[0]用于初始状态。
当中要明白的点是,肯定要从第一个字符开始匹配,那么遍历整个字典,每匹配了一个word,那对应的数组位置应该标为真值,没有匹配的位置仍保持假值。
依次循环,如果这个字符串整个都能匹配,则在字符布尔数组的最后位置应该为真。
public boolean wordBreak(String s, Set<String> wordDict) {
boolean[] charArray = new boolean[s.length() + 1];
charArray[0] = true;
for (int i = 0; i < s.length(); i++) {
if (!charArray[i]) {
continue;
}
for (String str: wordDict) {
int length = str.length();
if (length + i > s.length()) {
continue;
}
int end = length + i;
if (s.substring(i, end).equals(str)) {
charArray[end] = true;
}
}
}
return charArray[s.length()];
}
当中要明白的点是,肯定要从第一个字符开始匹配,那么遍历整个字典,每匹配了一个word,那对应的数组位置应该标为真值,没有匹配的位置仍保持假值。
依次循环,如果这个字符串整个都能匹配,则在字符布尔数组的最后位置应该为真。
public boolean wordBreak(String s, Set<String> wordDict) {
boolean[] charArray = new boolean[s.length() + 1];
charArray[0] = true;
for (int i = 0; i < s.length(); i++) {
if (!charArray[i]) {
continue;
}
for (String str: wordDict) {
int length = str.length();
if (length + i > s.length()) {
continue;
}
int end = length + i;
if (s.substring(i, end).equals(str)) {
charArray[end] = true;
}
}
}
return charArray[s.length()];
}
相关文章推荐
- 对比一下$(function () {});和$(window).load(function(){});
- 292. Nim Game
- Mongodb 上传图片
- vsphere server安装win10问题
- placeholder
- android 自动打包
- 最近写代码的一些记录
- Mongodb 上传图片
- Mongodb 上传图片
- SCCM TP4部署Office2013之OCT设置 推荐
- bzoj 4245 OR-XOR(按位异或贪心)
- SNMP4J 源码包中的使用说明
- hdu 5690 All X
- Web/HTTP 调试利器(Fiddler)
- Thinking in java 之 内部类
- Java Arrys的用法
- NSDictionary的使用及常用方法(如实始化、添加元素、删除元素、修改元素值等)
- Fiddler(Web/HTTP调试利器)
- 专题:链表结点的删除
- 工作漏洞总结