leetcode:Word Break
2014-07-27 20:48
363 查看
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 =
dict =
Return true because
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) { set<int> dicWordLen; unordered_set<string>::iterator itr=dict.begin(); while (itr != dict.end()) { int len = (*itr).size(); dicWordLen.insert(len); ++itr; } int strLen = s.size(); vector<bool> D(strLen+1); for (int i=0; i<strLen+1; i++) { D[i] = false; } D[0] = true;//这个初始化很重要 for (int i = 0; i < strLen; i++) { set<int>::iterator itr = dicWordLen.begin(); while (itr != dicWordLen.end()) { if ((*itr) <= i+1) //the len from 0 to i is i+1 在这里我们只考虑在字典里长度比当前长度小的那些词 { if (D[i+1-(*itr)] == true) { string subString = s.substr(i-(*itr)+1, (*itr)); unordered_set<string>::iterator itr = dict.find(subString); if (itr != dict.end()) { D[i+1] = true; break; } } } else { break; } ++itr; } } return D[strLen]; } };
相关文章推荐
- Leetcode_DP_Word Break
- 【Leetcode】Word Break (DP)
- LeetCode139:Word Break
- LeetCode || Word Break
- [LeetCode] 135: Word Break
- LeetCode 139 Word Break
- [LeetCode]139. Word Break
- LeetCode_Word Break
- leetcode || 139、Word Break
- LeetCode——Word Break
- 139 Word Break [Leetcode]
- [leetcode-139]Word Break(java)
- LeetCode - Word Break
- LeetCode---Word Break 2
- leetcode 139. Word Break
- LeetCode:Word Break
- [LeetCode] 135: Word Break
- [leetcode][DP] Word Break
- LeetCode 13 Word Break
- leetcode-139-Word Break