class Solution {     public int numDistinct(String s, String t) {         String lowerS = s.toLowerCase();         String lowerT = t.toLowerCase();         int m = lowerS.length();         int n = lowerT.length();         //dp[i][j]表示s.subString(0,i)与k.subString(0,j)的匹配结果         int[][] dp = new int[m+1][n +1];         for(int k = 0;k < m+1;k++){             dp[k][0] = 1;         }         for(int i = 1;i < m+1;i++){             char sChar = s.charAt(i-1);             for(int j = 1; j< n+1; j++){                 char tChar = t.charAt(j-1);                 if(sChar==tChar){                     dp[i][j] = dp[i-1][j]+dp[i-1][j-1];                 }else{                     dp[i][j] = dp[i-1][j];                 }             }         }         return dp[m][n];     } }