给定一个字符串和一个字典,判断该字符串能不能分隔成字典里的元素。
如,给定s = ‘netease’, dict = ['net', 'ease'],则返回true,因为netease可以被分解为(‘net’, ‘ease’)
动态规划。f(i)表示[0,i]是否可以分词,f(i) = f(j) && f(j+1,i), 0<= j
bool word_break(string s, unordered_set& dict)
{
if(s.size() == 0)
return false;
int len = s.size();
vector 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];
}