class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
unordered_set<string> set; //放set里方便查找
for(const auto& word : wordDict){
set.insert(word);
}
vector<int> dp(s.size() + 1, 0);
dp[0] = 1;
for(int i = 1; i <= s.size(); ++i){
for(int j = 0; j < i; ++j){
if(dp[j] && set.find(s.substr(j, i - j)) != set.end()){ //前j个字母可以组成单词并且j~i-1可以组成单词
dp[i] = 1;
break;
}
}
}
return dp[s.size()];
}
};
LeetCode 139. 单词拆分
最新推荐文章于 2024-08-05 15:41:47 发布