文档链接:https://programmercarl.com/
LeetCode139.单词拆分
题目链接:https://leetcode.cn/problems/word-break/
思路:从每个单词可以使用无限次就看出来是个完全背包问题了,但递推公式怎么也没想出来。
晕
动规:
class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
unordered_set wordSet(wordDict.begin(), wordDict.end());
vector<bool> dp(s.size() + 1, false);
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()];
}
};
总结:补打卡