??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];
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容