DP专题训练10

不同的子序列

在这里插入图片描述

给你两个字符串 st ,统计并返回在 s子序列t 出现的个数,结果需要对 109 + 7 取模。

class Solution {
public:
    int numDistinct(string s, string t) {
        int dp[1100][1100];//dp[i][j]表示s前i个字符和t的前j个字符相同的
        int n = s.length(), m = t.length();
        s = " " + s, t = " " + t;
        if(m > n) return 0;
        for(int i = 0 ; i <= n ; i ++) dp[i][0] = 1;
        for(int i = 1; i <= n ; i ++){
            for(int j = 1; j <= m ; j ++){
                dp[i][j] = dp[i-1][j];
                if(s[i] == t[j]) dp[i][j] = (dp[i][j]+dp[i-1][j-1])%1000000007;
            }
        }
        return dp[n][m];
    }
};
posted @ 2024-04-09 23:59  xde_yt  阅读(0)  评论(0编辑  收藏  举报  来源