刷题笔记46-动态规划part08篇
@
动态规划
● 139.单词拆分
139.单词拆分
法1:动态规划
bool wordBreak(string s, vector<string>& wordDict) {
unordered_set<string> wordSet(wordDict.begin(),wordDict.end());
vector<bool> dp(s.length() + 1,false);
dp[0] = true;
for (int i = 1; i <= s.size(); ++i) {
for (int j = 0; j < i; ++j) {//wordSet.size()
string word = s.substr(j, i - j);//(i, j - i)
if (dp[j] && wordSet.find(word) != wordSet.end()) {
dp[i] = true;
}
}
// cout << "dp[i]值: " << i << " "<< dp[i] << endl;
}
for (const auto &item: dp)
cout << item << endl;
return dp.back();
}
浙公网安备 33010602011771号