原题地址

 

与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 }

 

相关文章:

  • 2022-01-16
  • 2022-12-23
  • 2021-12-17
  • 2022-01-01
猜你喜欢
  • 2022-01-20
  • 2021-10-16
  • 2022-02-01
  • 2021-12-07
  • 2022-12-23
  • 2021-09-23
  • 2021-09-24
相关资源
相似解决方案