139.单词的拆分
//背包问题的变形
//物品为字典中的单词
//背包为给定的单词
class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
vector<bool> dp(s.size()+1,false);
unordered_set<string> wordSet(wordDict.begin(),wordDict.end());
dp[0] = true;
for(int i=1;i<=s.size();i++)
{
for(int j=0;j<i;j++)
{
string word = s.substr(j,i-j);
if(wordSet.find(word)!=wordSet.end()&&dp[j]==true)//不等于则说明找到了
{
dp[i] = true;
}
}
}
return dp[s.size()];
}
};