Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 139. Word Break
題目:

方法:
dp[i] = 前 i 個字元(s[0 ~ i-1])是否可以被拆分
解答:
class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
int n = s.size();
vector<bool> dp(n + 1, false);
unordered_set<string> q(wordDict.begin(), wordDict.end());
dp[0] = true;
for (int i = 1; i <= n; ++i) {
for (int j = 0; j < i; ++j) {
if (dp[j] && q.count(s.substr(j, i - j))) {
dp[i] = true;
break;
}
}
}
return dp[n];
}
};