一、题目描述
给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。
例如:
给定s=“leetcode”;
dict=["leet", "code"].
返回true,因为"leetcode"可以被分割成"leet code".
二、代码
class Solution {
public:
bool wordBreak(string s, unordered_set<string> &dict) {
int len = s.length();
std::vector<bool> v(len+1,false);
v[0] = true;
for(int i = 1; i <= len; i++)
{
for(int j = i-1; j >= 0; j--)
{
if(v[j] && dict.find(s.substr(j,i-j)) != dict.end())
{
v[i] = true;
break;
}
}
}
return v[len];
}
};