comefrom: <awangdev>Scramble String_1.java
code: public boolean isScramble(String s1, String s2) {
          if (s1 == null || s2 == null) {
              return s1 == null && s2 == null;
          }
          if (s1.length() != s2.length()) {
              return false;
          }
          if (s1.equals(s2)) {
              return true;
          }
          
          int n = s1.length();
          boolean[][][] dp = new boolean[n][n][n + 1];
          int len = 1;
          for (int i = 0; i < n; i++) {
              for (int j = 0; j < n; j++) {
                  dp[i][j][1] = s1.charAt(i) == s2.charAt(j);
              }
          }
          
          for (len = 2; len <= n; len++) {
              for (int i = 0; i <= n - len; i++) {
                  for (int j = 0; j <= n - len; j++) {
                      for (int w = 1; w < len; w++) { 
                          dp[i][j][len] |= dp[i][j][w] && dp[i + w][j + w][len - w]; 
                          dp[i][j][len] |= dp[i][j + (len - w)][w] && dp[i + w][j][len - w]; 
                      }
                  }
              }
          }
          return dp[0][0][n];
      }
masked: public boolean var_0 ( String var_2 , String var_3 ) {
    if ( var_2 == null || var_3 == null ) {
      return var_2 == null && var_3 == null ;
    }
    if ( var_2 . length ( ) != var_3 . length ( ) ) {
      return false ;
    }
    if ( var_2 . equals ( var_3 ) ) {
      return true ;
    }
    int var_7 = var_2 . length ( ) ;
    boolean [ ] [ ] [ ] var_10 = new boolean [ var_7 ] [ var_7 ] [ var_7 + 1 ] ;
    int var_11 = 1 ;
    for ( int var_13 = 0 ;
    var_13 < var_7 ;
    var_13 ++ ) {
      for ( int var_14 = 0 ;
      var_14 < var_7 ;
      var_14 ++ ) {
        var_10 [ var_13 ] [ var_14 ] [ 1 ] = var_2 . charAt ( var_13 ) == var_3 . charAt ( var_14 ) ;
      }
    }
    for ( var_11 = 2 ;
    var_11 <= var_7 ;
    var_11 ++ ) {
      for ( int var_13 = 0 ;
      var_13 <= var_7 - var_11 ;
      var_13 ++ ) {
        for ( int var_14 = 0 ;
        var_14 <= var_7 - var_11 ;
        var_14 ++ ) {
          for ( int var_17 = 1 ;
          var_17 < var_11 ;
          var_17 ++ ) {
            var_10 [ var_13 ] [ var_14 ] [ var_11 ] |= var_10 [ var_13 ] [ var_14 ] [ var_17 ] && var_10 [ var_13 + var_17 ] [ var_14 + var_17 ] [ var_11 - var_17 ] ;
            var_10 [ var_13 ] [ var_14 ] [ var_11 ] |= var_10 [ var_13 ] [ var_14 + ( var_11 - var_17 ) ] [ var_17 ] && var_10 [ var_13 + var_17 ] [ var_14 ] [ var_11 - var_17 ] ;
          }
        }
      }
    }
    return var_10 [ 0 ] [ 0 ] [ var_7 ] ;
  }
  