LeetCode | Word Break II
来源:互联网 发布:网络连接受限制怎么办 编辑:程序博客网 时间:2024/06/01 15:33
原题描述:https://oj.leetcode.com/problems/word-break-ii/
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 = "catsanddog"
,
dict = ["cat", "cats", "and", "sand", "dog"]
.
A solution is ["cats and dog", "cat sand dog"]
.
解题思路:
动态规划+DFS
实现代码:
/** * LeetCode | Word Break II * @author wzystal@gmail.com */public class Solution {List<String> records = new ArrayList<String>();public List<String> wordBreak(String s, Set<String> dict) {if (canBreak(s, dict)) {dfsSearch(s, dict, "");}return records;}private boolean canBreak(String s, Set<String> dict) {if (s == null || s.length() == 0 || dict == null || dict.size()==0)return false;int len = s.length();boolean[] can = new boolean[len + 1];can[0] = true;for (int i = 1; i <= len; i++) {for (int j = 0; j < i; j++) {if (can[j] && dict.contains(s.substring(j, i))) {can[i] = true;break;}}}return can[len];}private void dfsSearch(String str, Set<String> dict, String result) {int len = str.length();if (len == 0) {records.add(result);}for (int i = 0; i <= len; i++) {String sub = str.substring(0,i);if(dict.contains(sub)){int curLen = result.length();if(!result.equals("")){result += " ";}result += sub;dfsSearch(str.substring(i), dict, result);result = result.substring(0, curLen);}}}}
0 0
- [leetcode]Word Break II
- LeetCode:Word Break II
- Leetcode: Word Break II
- [LeetCode] Word Break II
- [LeetCode]Word Break II
- LeetCode | Word Break II
- [LeetCode] - Word Break II
- LeetCode - Word Break II
- Leetcode Word Break II
- [LeetCode] Word Break II
- Word Break II -- LeetCode
- LeetCode (Word Break II )
- Leetcode--Word Break II
- Leetcode: Word Break II
- LeetCode Word Break II
- Word Break II leetcode
- [leetcode]Word Break II
- leetcode -- word break II
- 2-2. 然后是几点(15)
- servlet与Struts action线程安全问题分析!
- 项目管理随想
- 关闭iptables
- 对BST的测试用例(使用junit4)
- LeetCode | Word Break II
- Shell 脚本小试牛刀(5) -- 超便捷脚本之快速ssh 登录其他主机
- Cocos2d-js 实现弹窗背景虚化效果
- 7月2日倒霉
- poj 3709: 2进制转化为3进制
- air升级程序利用7za.exe curl.exe后台升级
- Factory Method - 工厂方法模式
- ci框架---调用非php文件作视图
- rails 数据验证