comefrom: <awangdev>Distinct Subsequences_1.java
code: public int numDistinct(String s, String t) {
          if (s == null || t == null || t.length() > s.length()) {
              return 0;
          } else if (s.equals(t)) {
              return 1;
          }
          
          int m = s.length();
          int n = t.length();
          int[][] dp = new int[m + 1][n + 1];
          for (int i = 0; i <= m; i++) {
              for (int j = 0; j <= n; j++) {
                  if (j == 0) {
                      dp[i][j] = 1;
                      continue;
                  }
                  if (i == 0) {
                      dp[i][j] = 0;
                      continue;
                  }
                  dp[i][j] = dp[i - 1][j];
                  if (s.charAt(i - 1) == t.charAt(j - 1)) {
                     dp[i][j] += dp[i - 1][j - 1];
                  }
              }
          }
          return dp[m][n];
      }
masked: public int sample_funcname ( String var_0 , String var_1 ) {
    if ( var_0 == null || var_1 == null || var_1 . length ( ) > var_0 . length ( ) ) {
      return 0 ;
    }
    else if ( var_0 . equals ( var_1 ) ) {
      return 1 ;
    }
    int var_2 = var_0 . length ( ) ;
    int var_3 = var_1 . length ( ) ;
    int [ ] [ ] var_4 = new int [ var_2 + 1 ] [ var_3 + 1 ] ;
    for ( int var_5 = 0 ;
    var_5 <= var_2 ;
    var_5 ++ ) {
      for ( int var_6 = 0 ;
      var_6 <= var_3 ;
      var_6 ++ ) {
        if ( var_6 == 0 ) {
          var_4 [ var_5 ] [ var_6 ] = 1 ;
          continue ;
        }
        if ( var_5 == 0 ) {
          var_4 [ var_5 ] [ var_6 ] = 0 ;
          continue ;
        }
        var_4 [ var_5 ] [ var_6 ] = var_4 [ var_5 - 1 ] [ var_6 ] ;
        if ( var_0 . charAt ( var_5 - 1 ) == var_1 . charAt ( var_6 - 1 ) ) {
          var_4 [ var_5 ] [ var_6 ] += var_4 [ var_5 - 1 ] [ var_6 - 1 ] ;
        }
      }
    }
    return var_4 [ var_2 ] [ var_3 ] ;
  }
  