赞
踩
题目:
题解:
- class Solution {
- public:
- int numDistinct(string s, string t) {
- int m = s.length(), n = t.length();
- if (m < n) {
- return 0;
- }
- vector<vector<unsigned long long>> dp(m + 1, vector<unsigned long long>(n + 1));
- for (int i = 0; i <= m; i++) {
- dp[i][n] = 1;
- }
- for (int i = m - 1; i >= 0; i--) {
- char sChar = s.at(i);
- for (int j = n - 1; j >= 0; j--) {
- char tChar = t.at(j);
- if (sChar == tChar) {
- dp[i][j] = dp[i + 1][j + 1] + dp[i + 1][j];
- } else {
- dp[i][j] = dp[i + 1][j];
- }
- }
- }
- return dp[0][0];
- }
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。