class Solution {
public:
//dp[i]表示字符串s的前i个字符是否能够匹配上
//dp[i]为true由dp[j](j < i)为true和s[j:i](s下标从0开始)存在在wordDict中转移
bool dp[1005];
bool wordBreak(string s, vector<string>& wordDict) {
set<string> word;
int sz = s.size();
for(int i = 0; i < wordDict.size(); i++){
word.insert(wordDict[i]);
}
dp[0] = true;
for(int i = 1; i <= sz; i++){
for(int j = 0; j < i; j++){
string tmp = s.substr(j, i - j);
if(dp[j] && word.find(tmp) != word.end()){
dp[i] = true;
break;
}
}
}
return dp[sz];
}
};
leetcode 139.单词拆分 (动态规划)
于 2023-03-17 14:52:07 首次发布