思路:

直接爆搜会超时,需要使用记忆化搜索。使用map把已经计算过的情况记录下来,避免重复计算。

实现:

 class Solution
{
public:
vector<string> wordBreak(string s, vector<string>& wordDict)
{
unordered_map<int, vector<string>> dp;
return dfs(s, , wordDict, dp);
}
vector<string> dfs(string s, int cur, vector<string>& wordDict, unordered_map<int, vector<string>>& dp)
{
if (cur >= s.length())
{
vector<string> v;
v.push_back("");
return v;
}
if (dp.count(cur)) return dp[cur];
vector<string> ans;
for (auto it: wordDict)
{
int l = it.length();
if (cur + l <= s.length() && s.substr(cur, l) == it)
{
if (cur + l == s.length())
ans.push_back(it);
else
{
vector<string> tmp = dfs(s, cur + l, wordDict, dp);
for (auto it1: tmp)
{
ans.push_back(it + " " + it1);
}
}
}
}
return dp[cur] = ans;
}
};

最新文章

  1. Hive-0.x.x - Enviornment Setup
  2. ZeroClipboard跨浏览器复制粘贴
  3. Windows 域(domain)
  4. 总结Web应用中基于浏览器的安全漏洞
  5. 使用trim方法检测用户输入
  6. 基于visual Studio2013解决C语言竞赛题之1026判断排序
  7. openSUSE13.2安装Nodejs并更新到最新版
  8. iOS-延迟操作方法总结
  9. 常见的DBCP连接池配置
  10. .Net Core跨平台应用研究-HelloDDNS(动态域名篇)
  11. 【转】BFG Repo-Cleaner: Removes large or troublesome blobs like git-filter-branch does, but faster.
  12. CF 1060E. Sergey and Subway
  13. 音频标签化3:igor-8m项目的训练、评估与测试
  14. 喵哈哈村的魔法考试 Round #17 题解
  15. THUSC 2017 D1T2 杜老师
  16. c++中类似于java jprofiler/eclispe memoryanalysis的性能以及内存分析工具
  17. 使用addChildViewController手动控制UIViewController的切换
  18. C#-WebForm-JS知识:基础部分、BOM部分、DOM部分、JS事件
  19. vector array and normal stanard array
  20. mysql用法之创建事件

热门文章

  1. BZOJ_3786_星系探索_splay维护出栈入栈序
  2. 洛谷 2668&amp;2540 斗地主——搜索+贪心+dp
  3. 5.oracle中一个字段中存储&#39;a&#39;,&#39;b&#39;与&#39;a&#39;与a的写法,存储过程中与之对应
  4. silverlight RadGridView 动态添加数据列
  5. 如何在ubuntu下使用windows下的程序(eg: .exe)
  6. java mysql编码问题
  7. Flutter实战视频-移动电商-18.首页_火爆专区后台接口调试
  8. HDU2844【背包问题(二进制优化)】
  9. VR相关学习资源
  10. 【Linux】Devops的一些运维工具