📚115. Distinct Subsequences

"求S有多少个不同的子串与T相同"
count the number of distinct subsequence of T in S.

如果两个character相同,dp[ i ][ j ] = dp[ i-1 ][ j-1 ] + dp[ i-1 ][ j ];
如果两个character不同,dp[ i ][ j ] = dp[ i-1 ][ j ];
public class Solution {
    public int numDistinct(String s, String t) {
        if(s == null || t == null) return 0;
        if(t.length() == 0)   return 1;
        if(s.length() == 0)   return 0;
        
        int m = s.length(), n = t.length();
        int dp[][] = new int[m+1][n+1];
        for(int i=0; i<=m; i++) {
            dp[i][0] = 1;
        }
        
        for(int i=1; i<=m; i++) {
            for(int j=1; j<=n; j++) {
                dp[0][j] = 0;
                if(s.charAt(i-1) == t.charAt(j-1))
                    dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
                else
                    dp[i][j] = dp[i-1][j];
            }
        }
        return dp[m][n];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容