Leetcode#139 Word Break

原题地址

 

与Word Break II(参见这篇文章)相比,只需要判断是否可行,不需要构造解,简单一些。

依然是动态规划。

 

代码:

 1 bool wordBreak(string s, unordered_set<string> &dict) {
 2         int maxLen = 0;
 3         for (auto w : dict)
 4             maxLen = maxLen > w.length() ? maxLen : w.length();
 5             
 6         vector<bool> res(s.length() + 1, false);
 7         res[s.length()] = true;
 8         
 9         for (int i = s.length() - 1; i >= 0; i--) {
10             for (int l = 1; !res[i] && l <= maxLen && i + l <= s.length(); l++)
11                 res[i] = dict.find(s.substr(i, l)) != dict.end() && res[i + l];
12         }
13         
14         return res[0];
15 }

 

posted @ 2015-01-28 11:01  李舜阳  阅读(142)  评论(0编辑  收藏  举报