class Solution {
public:
int numDistinct(string s, string t) {
if (s.empty()) return 0;
vector<int> dp(s.size(), 1);
int pre, temp;
for (int i = 0; i < t.size(); ++i) {
pre = dp[0], dp[0] = (i == 0 && s[0] == t[0]) ? 1 : 0;
for (int k = 1; k < s.size(); ++k)
temp = dp[k], dp[k] = dp[k - 1] + (s[k] == t[i] ? pre : 0), pre = temp;
}
return dp[s.size() - 1];
}
};
Leetcode 115. 不同的子序列
最新推荐文章于 2025-01-15 22:17:09 发布