📚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];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,349评论 0 33
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,420评论 0 23
  • Gradle中添加support依赖 布局文件添加viewpager和tablayout 调用setupWithV...
    奔跑的荷兰猪阅读 2,454评论 0 0
  • 今天身体很疲惫,眼皮快合一起了。想着今天的作业就算了吧。不行。(昨天晚睡的后果自负) 身体没精神,没活力,做任何事...
    雪梨he阅读 1,352评论 2 0
  • 自从科二挂后,一直患得患失,科三再挂,整个人真是要崩溃,怀疑自己怀疑人生,所有的付出最终是这个结果。但自己细想想,...
    百香小趣阅读 3,698评论 4 50