LeetCode 115. Distinct Subsequences

来源:互联网 发布:上海淘宝运营培训班 编辑:程序博客网 时间:2024/05/16 14:47

dp[i][j]代表用S前i的字符组成T前j的字符的种类。

递推公式:

dp[i][j] = dp[i-1][j] + S[i-1]==T[j-1]? dp[i-1][j-1]: 0;

代码:

class Solution {public:    int numDistinct(string S, string T)     {        vector<vector<int>> dp(S.size()+1, vector<int>(T.size()+1, 0));        for (size_t i = 0; i <= S.size(); ++ i)        {        dp[i][0] = 1;        }        for (size_t i = 1; i <= S.size(); ++ i)                {            for (size_t j = 1; j <= T.size(); ++ j)                {        dp[i][j] = dp[i-1][j] + (S[i-1]==T[j-1]? dp[i-1][j-1]: 0); // do use bracket here        }        }        return dp[S.size()][T.size()];    }};


0 0
原创粉丝点击