comefrom: <gouthampradhan>dynamic_programming_LongestPaliandromicSubstring_1.java
code: public String longestPalindrome(String s) {
      int l = s.length();
      int startIndex = 0;
      int maxLen = 1;
      boolean[][] A = new boolean[l][l];
      for (int i = 0, j = 0; i < l; i++, j++) A[i][j] = true;
      for (int i = 0, j = i + 1; j < l; i++, j++) {
        if (s.charAt(i) == s.charAt(j)) {
          A[i][j] = true;
          startIndex = i;
          maxLen = 2;
        }
      }
      for (int k = 3; k <= l; k++) {
        for (int i = 0, j = k - 1; j < l; i++, j++) {
          if (s.charAt(i) == s.charAt(j)) {
            A[i][j] = A[i + 1][j - 1];
            if (A[i][j]) {
              if (k > maxLen) {
                startIndex = i;
                maxLen = k;
              }
            }
          }
        }
      }
      return s.substring(startIndex, startIndex + maxLen);
    }
masked: public String var_0 ( String var_1 ) {
    int var_2 = var_1 . length ( ) ;
    int var_3 = 0 ;
    int var_4 = 1 ;
    boolean [ ] [ ] var_5 = new boolean [ var_2 ] [ var_2 ] ;
    for ( int var_6 = 0 , var_7 = 0 ;
    var_6 < var_2 ;
    var_6 ++ , var_7 ++ ) var_5 [ var_6 ] [ var_7 ] = true ;
    for ( int var_6 = 0 , var_7 = var_6 + 1 ;
    var_7 < var_2 ;
    var_6 ++ , var_7 ++ ) {
      if ( var_1 . charAt ( var_6 ) == var_1 . charAt ( var_7 ) ) {
        var_5 [ var_6 ] [ var_7 ] = true ;
        var_3 = var_6 ;
        var_4 = 2 ;
      }
    }
    for ( int var_8 = 3 ;
    var_8 <= var_2 ;
    var_8 ++ ) {
      for ( int var_6 = 0 , var_7 = var_8 - 1 ;
      var_7 < var_2 ;
      var_6 ++ , var_7 ++ ) {
        if ( var_1 . charAt ( var_6 ) == var_1 . charAt ( var_7 ) ) {
          var_5 [ var_6 ] [ var_7 ] = var_5 [ var_6 + 1 ] [ var_7 - 1 ] ;
          if ( var_5 [ var_6 ] [ var_7 ] ) {
            if ( var_8 > var_4 ) {
              var_3 = var_6 ;
              var_4 = var_8 ;
            }
          }
        }
      }
    }
    return var_1 . substring ( var_3 , var_3 + var_4 ) ;
  }
  