Leetcode题解——Word Break
来源:互联网 发布:java程序设计基础算法 编辑:程序博客网 时间:2024/06/07 22:14
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>& wordDict) { int n = s.size(); if(!n) return true; if(wordDict.empty()) return false; vector<bool> D(n+1,false); D[0] = true; int longestWord = 0; for(auto word : wordDict){ longestWord = max(longestWord, (int)word.size()); } for(int i=1; i<=n; i++){ int k = max(0,(i-longestWord)); for(int j=i-1; j>=k; j--){ if(D[j]){ string t = s.substr(j,i-j); if(wordDict.find(t)!=wordDict.end()){ D[i] = true; break; } } } } return D[n]; } };
动态规划:0ms
class Solution {public: bool wordBreak(string s, unordered_set<string>& wordDict) { int n = s.size(); if(!n) return true; if(wordDict.empty()) return false; for(int i=n-1; i>=0; i--){ if(wordDict.find(s.substr(i))!=wordDict.end()) break; if(i==0) return false; } return findwordBreak(s,wordDict); } bool findwordBreak(string s, unordered_set<string>& wordDict){ int n = s.size(); if(n==0){ return true; } for(int i=1; i<=n; i++){ string t = s.substr(0,i); if(wordDict.find(t)!=wordDict.end()){ if(findwordBreak(s.substr(i), wordDict)) return true; } } return false; }};
递归:0ms
0 0
- Leetcode题解——Word Break
- LeetCode题解:Word Break
- LeetCode - Word Break / Word Break II 题解
- **LeetCode—Word Break
- **LeetCode—Word Break
- LeetCode——Word Break
- LeetCode——Word Break
- LeetCode——Word Break
- leetcode——Word Break
- LeetCode——Word Break
- Leetcode—139. Word Break
- LeetCode题解:Word Break I and II
- LeetCode 题解(9):Word Break
- LeetCode 题解(87): Word Break II
- LeetCode题解–137. Word Break
- LeetCode 题解(Week 11):Word Break
- LeetCode——Word Break II
- LeetCode OJ——Word Break
- CentOS 配置mysql允许远程登录
- Android自定义View的实现方法,带你一步步深入了解View
- 操作系统内核
- HTTP协议
- Android Studio修改grade版本
- Leetcode题解——Word Break
- 欢迎使用CSDN-markdown编辑器
- Fastjson是一个Java语言编写的高性能功能完善的JSON库。
- 保存退出vi编辑
- java免费发送邮件实现
- adb 不能正确启动全解决
- Java使用Protocol Buffers入门四步骤
- java enum(枚举)的使用
- java接口可以继承多个接口