美文网首页
word_break

word_break

作者: 小码弟 | 来源:发表于2018-11-23 11:08 被阅读0次

给定一个字符串和一个字典,判断该字符串能不能分隔成字典里的元素。
如,给定s = ‘netease’, dict = ['net', 'ease'],则返回true,因为netease可以被分解为(‘net’, ‘ease’)

动态规划。f(i)表示[0,i]是否可以分词,f(i) = f(j) && f(j+1,i), 0<= j <i;

bool word_break(string s, unordered_set<string>& dict)
{
  if(s.size() == 0)
    return false;
  int len = s.size(); 
  vector<bool> dp(len+1, false);
  
  dp[0]=true;
  for(int i = 1; i<=len; ++i)
    for(int j=i-1; j>=0; --j)
      if(dp[j] && dict.find(s.substr(j, i-j)) != dict.end())
        {
            dp[i] = true;
            break;
        }

  return dp[len];
}

相关文章

  • word_break

    给定一个字符串和一个字典,判断该字符串能不能分隔成字典里的元素。如,给定s = ‘netease’, dict =...

网友评论

      本文标题:word_break

      本文链接:https://www.haomeiwen.com/subject/tvadqqtx.html