comefrom: <awangdev>Scramble String_2.java
code: public boolean isScramble(String s1, String s2) {
          if (s1 == null || s2 == null || s1.length() != s2.length()) {
              return false;
          }
          int n = s1.length();
          boolean[][][] dp = new boolean[n][n][n + 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 (int 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_1 , String var_2 ) {
    if ( var_1 == null || var_2 == null || var_1 . length ( ) != var_2 . length ( ) ) {
      return false ;
    }
    int var_3 = var_1 . length ( ) ;
    boolean [ ] [ ] [ ] var_4 = new boolean [ var_3 ] [ var_3 ] [ var_3 + 1 ] ;
    for ( int var_5 = 0 ;
    var_5 < var_3 ;
    var_5 ++ ) {
      for ( int var_6 = 0 ;
      var_6 < var_3 ;
      var_6 ++ ) {
        var_4 [ var_5 ] [ var_6 ] [ 1 ] = var_1 . charAt ( var_5 ) == var_2 . charAt ( var_6 ) ;
      }
    }
    for ( int var_7 = 2 ;
    var_7 <= var_3 ;
    var_7 ++ ) {
      for ( int var_5 = 0 ;
      var_5 <= var_3 - var_7 ;
      var_5 ++ ) {
        for ( int var_6 = 0 ;
        var_6 <= var_3 - var_7 ;
        var_6 ++ ) {
          for ( int var_8 = 1 ;
          var_8 < var_7 ;
          var_8 ++ ) {
            var_4 [ var_5 ] [ var_6 ] [ var_7 ] |= ( var_4 [ var_5 ] [ var_6 ] [ var_8 ] && var_4 [ var_5 + var_8 ] [ var_6 + var_8 ] [ var_7 - var_8 ] ) ;
            var_4 [ var_5 ] [ var_6 ] [ var_7 ] |= ( var_4 [ var_5 ] [ var_6 + var_7 - var_8 ] [ var_8 ] && var_4 [ var_5 + var_8 ] [ var_6 ] [ var_7 - var_8 ] ) ;
          }
        }
      }
    }
    return var_4 [ 0 ] [ 0 ] [ var_3 ] ;
  }
  