comefrom: <gouthampradhan>dynamic_programming_DecodeWays_1.java
code: public int numDecodings(String s) {
      if (s == null || s.isEmpty()) return 0;
      int[] dp = new int[s.length() + 2];
      dp[s.length()] = 1;
      dp[s.length() + 1] = 1;
      for (int i = s.length() - 1; i >= 0; i--) {
        for (int j = i + 1; j < i + 3; j++) {
          if (j <= s.length()) {
            String subStr = s.substring(i, j);
            if (!subStr.startsWith("0")) {
              int intVal = Integer.parseInt(subStr);
              if (intVal <= 26) {
                dp[i] += dp[j];
              }
            }
          }
        }
      }
      return dp[0];
    }
masked: public int sample_funcname ( String var_1 ) {
    if ( var_1 == null || var_1 . isEmpty ( ) ) return 0 ;
    int [ ] var_7 = new int [ var_1 . length ( ) + 2 ] ;
    var_7 [ var_1 . length ( ) ] = 1 ;
    var_7 [ var_1 . length ( ) + 1 ] = 1 ;
    for ( int var_9 = var_1 . length ( ) - 1 ;
    var_9 >= 0 ;
    var_9 -- ) {
      for ( int var_10 = var_9 + 1 ;
      var_10 < var_9 + 3 ;
      var_10 ++ ) {
        if ( var_10 <= var_1 . length ( ) ) {
          String var_13 = var_1 . substring ( var_9 , var_10 ) ;
          if ( ! var_13 . startsWith ( "0" ) ) {
            int var_18 = Integer . parseInt ( var_13 ) ;
            if ( var_18 <= 26 ) {
              var_7 [ var_9 ] += var_7 [ var_10 ] ;
            }
          }
        }
      }
    }
    return var_7 [ 0 ] ;
  }
  