LeetCode139—Word Break
来源:互联网 发布:mysql 0 1 true false 编辑:程序博客网 时间:2024/06/08 03:47
1.原题
原题链接
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”.
2.分析
网上主流的两种说法,DP和DFS,DP将来补充,自己用DFS写的。比如说:
s=”LeetCode” dict={“Leet”,”Code”}
就从s[0]开始,”L” ,”Le”, “Lee”,”Leet” 当找到匹配项时,重新设定起始位置,从剩下的子串开始搜索。
这个思路最后会超时。
不过可以记录一下,DFS返回时字符串中不满足条件的位置的索引添加到容器中。
代码
class Solution {private: unordered_set<int>index; bool dfs(string s, unordered_set<string>&wordDict,int start) { if (start==s.size())//DFS返回 return true; if (index.find(start) != index.end())//不满足条件的索引 return false; for (int i = 1; i <= s.size()-start; i++) { string sub = s.substr(start, i); if (wordDict.find(sub) != wordDict.end()) { if (dfs(s, wordDict, start+i)) return true; else index.insert(start+i);//将不满足条件的索引添加到容器中 } } return false; }public: bool wordBreak(string s, unordered_set<string>& wordDict) { return dfs(s, wordDict,0); }};
1 0
- LeetCode139—Word Break
- LeetCode139:Word Break
- Leetcode139: Word Break
- LeetCode139. Word Break
- Leetcode139题Word Break的两种动态规划解法
- **LeetCode—Word Break
- **LeetCode—Word Break
- Word-break:break-word
- Word Break && Word Break ||
- LeetCode——Word Break
- LeetCode——Word Break
- LeetCode——Word Break
- leetcode——Word Break
- LeetCode——Word Break
- Algorithms—139.Word Break
- Leetcode—139. Word Break
- word-break
- Word Break
- android http网络编程
- 解析url中的参数保存在json中
- activity cannot be resolved to a type
- Java多线程
- Android的DrawText,getTextBounds
- LeetCode139—Word Break
- 软件架构之分层模式(Layered Architecture)
- BZOJ 2789 Poi 2012 Letters 树状数组 逆序对
- Markdown编辑器
- 关于matlab中textread函数的用法
- Android开源项目分类汇总
- hdu 5886 Tower Defence 树形期望dp 雪漫防守战
- C ++ 函数后面加throw()的作用
- 第十一章μC/OS-Ⅱ可裁剪性的实现