139. Word Break
2018-03-16 21:16
148 查看
Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words. You may assume the dictionary does not contain duplicate words.For example, given
s =
dict =
The wordDict parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes.
对于let code ,leet这种情况,先到let,dp[3]=true,后到leet,dp[4]=true,不必担心忽略掉后者。
虽然思路大致了解了,但是还是做不出来,以后遇到这种将要做出来但是又没做出来的要再多想想,不要急。
s =
"leetcode",
dict =
["leet", "code"].Return true because
"leetcode"can be segmented as
"leet code".UPDATE (2017/1/4):
The wordDict parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes.
题意:
给一个由几个单词片段组成的字典,判断它是否可以拼成所需要的单词。思路:
由于题目给出的是vector,允许有相同的。所以可以先将它取出,用一个set保存,来过滤重复的单词。然后用一个数组dp[i]来表示可以拼成从0到i的字符串。那么如果可以拼成从0到i的,并且从i+1到j这j-i个字符在set里面有的话,那么dp[j]也是true。对于let code ,leet这种情况,先到let,dp[3]=true,后到leet,dp[4]=true,不必担心忽略掉后者。
虽然思路大致了解了,但是还是做不出来,以后遇到这种将要做出来但是又没做出来的要再多想想,不要急。
代码:
class Solution { public: bool wordBreak(string s, vector<string>& wordDict) { int l=s.length(); if(l==0) return false; bool dp[l+1]; memset(dp,0,sizeof(dp)); set<string>t; dp[0]=true; for(auto i:wordDict) { t.insert(i); } for(int i=1;i<=l;i++) { for(string sub:t) { if(i>=sub.size()&&dp[i-sub.size()]&&sub==s.substr(i-sub.size(),sub.size())) { dp[i]=true; break; } } } return dp[l]; } };
相关文章推荐
- LeetCode 139. Word Break
- 139 Word Break [Leetcode]
- leetcode——139——Word Break
- Leetcode 139. Word Break (Medium) (cpp)
- 139. Word Break
- 139. Word Break
- [leetcode]139. Word Break(Java)
- leetcode 139. Word Break
- 【LeetCode】139. Word Break
- [leetcode] 139.Word Break
- LeetCode 139 Word Break
- Leetcode139: Word Break
- 【Leetcode】139. Word Break
- [leetcode]139. Word Break
- LeetCode139:Word Break
- 139. Word Break
- Leetcode 139. Word Break | DP
- [LeetCode]139.Word Break
- 139. Word Break
- [leetcode] 139. Word Break