Java for LeetCode 140 Word Break II
2015-06-04 11:29
483 查看
Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word.
Return all such possible sentences.
For example, given
s =
dict =
A solution is
解题思路:
参考上题思路二的解法,修改下代码,让其显示路径即可,JAVA实现如下:
Return all such possible sentences.
For example, given
s =
"catsanddog",
dict =
["cat", "cats", "and", "sand", "dog"].
A solution is
["cats and dog", "cat sand dog"].
解题思路:
参考上题思路二的解法,修改下代码,让其显示路径即可,JAVA实现如下:
static public List<String> wordBreak(String s, Set<String> wordDict) { List<String> list = new ArrayList<String>(); dfs(list, s, wordDict, new HashSet<String>(), new ArrayList<String>()); return list; } static public boolean dfs(List<String> list, String s, Set<String> dict, Set<String> unmatch, List<String> alist) { boolean isMatch=false; for (String prefix : dict) { if (s.equals(prefix)) { alist.add(prefix); StringBuilder sb = new StringBuilder(); for (String str : alist) { sb.append(str); sb.append(" "); } list.add(sb.substring(0, sb.length() - 1)); alist.remove(alist.size() - 1); isMatch=true; continue; } else if (s.startsWith(prefix)) { String suffix = s.substring(prefix.length()); if (!unmatch.contains(suffix)) { alist.add(prefix); if (!dfs(list, suffix, dict, unmatch, alist)) unmatch.add(suffix); else isMatch=true; alist.remove(alist.size() - 1); } } } return isMatch; }
相关文章推荐
- 利用StringEscapeUtils对字符串进行各种转义与反转义(Java)
- Maven在Eclipse的基本使用
- static field and method in java
- Eclipse中SVN的安装步骤(两种)和使用方法
- eclipse安装教程
- 我的Spring之旅(二):为请求加入參数
- Spring注解@Component、@Repository、@Service、@Controller区别
- Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例
- java socket 单服务器多客户端实时通信
- java 防止 XSS 攻击的常用方法总结.
- struts旅程(二)Struts登录示例
- Vijava 学习笔记之(Template 克隆虚拟机并修改Template 指定虚拟磁盘大小)
- 欢迎使用CSDN-markdown编辑器
- java中write(byte[] b)与write(byte[] b,int off,int len)区别
- java正则表达式
- 《两个精神病人》——Java课堂练习
- java String.split方法是用注意点(转)
- spring+mongo
- [Erlang]Erlang与Java如何进行节点通信
- Java中堆和栈的区别