class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
unordered_set<string> wordSet = {wordDict.begin(), wordDict.end()};
//dp[j] 前j个字符可以被拼接出
vector<int> dp(s.length() + 1, 0);
//init
dp[0] = 1;
for(int j = 1; j <= s.length(); j++){ //先遍历背包
for(int i = 0; i < j; i++){ //后遍历物品
string curWord = s.substr(i, j - i);
if(wordSet.find(curWord) != wordSet.end() && dp[i])
dp[j] = 1;
}
}
return dp[s.length()];
}
};
LeetCode139.单词拆分
最新推荐文章于 2024-10-16 19:08:56 发布