Leetcode刷题之Word Break
来源:互联网 发布:剑网3喵哥捏脸数据 编辑:程序博客网 时间:2024/05/18 18:00
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"
.
解答这道题我首先想到的是递归去做,以下是我写的代码:
class Solution {public: bool wordBreak(string s, unordered_set<string> &dict) {for(int i = 1;i<=s.size();++i){if(dict.count(s.substr(0,i))){if(i == s.size())return true;if(wordBreak(s.substr(i+1,s.size()-i),dict))return true;}}return false; }};
但是提示我Time Limit Exceeded。。好吧,其实一路联系过来,我对DFS、BFS算法都算了解的比较多了,所以遇到这类问题一般想这么去解决了。看了网上其他人的解答,原来这道题可以用DP算法来做。
class Solution { public: bool wordBreak(string s, unordered_set<string> &dict) { int n = (int)s.size(); vector<bool> dp(n + 1, false); dp[0] = true; for (int i = 0; i < n; i++) { if (dp[i]) { for (int len = 1; i + len - 1 < n; len++) { if (dict.count(s.substr(i, len)) > 0) dp[i + len] = true; } } } return dp[n]; } };
通过这道题,我明白自己还是对DP算法理解的不够深刻。
0 0
- Leetcode刷题之Word Break
- leetcode之Word Break
- LeetCode 之 Word Break
- leetcode之Word Break
- leetcode之Word Break
- leetcode之Word Break
- leetcode之Word Break
- LeetCode之Word Break
- leetcode之Word-break
- leetcode之Word Break II
- leetcode之Word Break II
- LeetCode之Word Break II
- LeetCode刷题笔录Word Break
- LeetCode刷题笔录Word Break II
- LeetCode刷题笔录Word Break II
- leetcode Word Break & Word Break ||
- LeetCode OJ 之 Word Break (断词)
- 开始刷leetcode day47: Word Break
- Python基础学习篇—IDLE快捷键一览
- asp.net 超时介绍
- ubuntu 安装 JDK
- 在Android中通过Intent使用Bundle传递对象
- Android的MediaPlayer架构介绍
- Leetcode刷题之Word Break
- centos搭建SVN实录,并部署项目(nginx)
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- [Android Tool]更新SDK后ADT版本低不支持问题的解决
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- 原型图利器 – Mockplus的审阅功能
- Service传值
- 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范
- asp.net 时间格式大全