[leetcode 140] Word Break II
来源:互联网 发布:淘宝购物客户资源 编辑:程序博客网 时间:2024/03/29 07:54
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"]
.
class Solution {public: vector<string> wordBreak(string s, unordered_set<string> &dict) { const int n = s.size(); int f[n+1]; fill_n(&f[0], n+1, false); f[0] = true; vector<vector<bool> > prev(n+1, vector<bool>(n, false)); for (int i = 1; i <= n; i++) { for (int j = 0; j < i; j++) { if (f[j] && dict.find(s.substr(j,i-j)) != dict.end()) { f[i] = true; prev[i][j] = true; } } } vector<string> cur; vector<string> res; dfs(s, n, cur, res, prev); return res; } void dfs(string s, int n, vector<string> &cur, vector<string> &res, const vector<vector<bool> > &prev) { if (n == 0) { string tmp; for (auto i = cur.crbegin(); i != cur.crend(); i++) { tmp += *i + " "; } tmp.erase(tmp.end()-1); res.push_back(tmp); return ; } for (int i = s.size()-1; i >= 0; i--) { if (prev[n][i]) { cur.push_back(s.substr(i, n-i)); dfs(s, i, cur, res, prev); cur.pop_back(); } } }};
0 0
- LeetCode: Word Break II [140]
- [leetcode 140] Word Break II
- LeetCode(140) Word Break II
- leetcode || 140、Word Break II
- leetcode 140: Word Break II
- 140 Word Break II [Leetcode]
- leetcode-140-Word Break II
- LeetCode 140 Word Break II
- LeetCode #140: Word Break II
- Leetcode 140 Word Break II
- Leetcode 140 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
- 调试 Nginx 的配置
- 谈谈“理论和空想”
- 贡献gulp插件两枚
- POJ 2481 Cows 简单树状数组区间覆盖
- 【遇到的问题】——浏览器兼容性
- [leetcode 140] Word Break II
- Hadoop2体系结构
- ALFS on Centos 7
- C++语法总结查询
- 轻量级 PHP 框架 TinyLara 发布
- 图
- python:字符串
- .Net笔试2
- C/C++中三个数判断大小编程