标签:
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"
.
Analyse: Use dynamic programming to solve this problem.
1 class Solution { 2 public: 3 bool wordBreak(string s, unordered_set<string>& wordDict) { 4 vector<bool> canDivide(s.size() + 1, false); 5 canDivide[0] = true; 6 7 for (int i = 0; i < s.size(); i++) { 8 for (int j = i; j >= 0; j--) { 9 if (canDivide[i - j] && wordDict.find(s.substr(i - j, j + 1)) != wordDict.end()) { 10 canDivide[i + 1] = true; 11 break; 12 } 13 } 14 } 15 return canDivide[s.size()]; 16 } 17 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/5944476.html