目录
139 单词拆分
class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
unordered_set<string> wordset(wordDict.begin(), wordDict.end());
//dp数组来判断i长度时能不能被字典里面的单词所组成
vector<bool> dp(s.size()+1, false);
dp[0] = true;
for(int i = 0; i <= s.size(); i++){//背包
for(int j = 0; j < i; j++){//相当于另一个执行背包的指针,负责寻找字符串里面哪些可以在wordset里面被找到
string word = s.substr(j, i - j);
//dp[j] == true 是为了保证某个词符合的时候之前的词要可以才行
if(wordset.find(word) != wordset.end() && dp[j] == true){
dp[i] = true;
}
}
}
return dp[s.size()];
}
};