comefrom: <awangdev>5. Longest Palindromic Substring_1.java
code: public String longestPalindrome(String s) {
      	if (s == null || s.length() <= 1) return s;
          int n = s.length();
      	boolean dp[][] = new boolean[n][n];
      	String str = String.valueOf(s.charAt(n - 1));
      	for (int i = n - 1; i >= 0; i--) {
              dp[i][i] = true;
      		for (int j = i + 1; j < n; j++) {
      			if (s.charAt(i) == s.charAt(j) && (i + 1 == j || dp[i + 1][j - 1])) {
      				dp[i][j] = true;
      				str = str.length() <= (j - i + 1) ? s.substring(i, j + 1) : str;
      			}
      		}
      	}
      	return str;
      }
masked: public String var_0 ( String var_2 ) {
    if ( var_2 == null || var_2 . length ( ) <= 1 ) return var_2 ;
    int var_6 = var_2 . length ( ) ;
    boolean var_8 [ ] [ ] = new boolean [ var_6 ] [ var_6 ] ;
    String var_11 = String . valueOf ( var_2 . charAt ( var_6 - 1 ) ) ;
    for ( int var_12 = var_6 - 1 ;
    var_12 >= 0 ;
    var_12 -- ) {
      var_8 [ var_12 ] [ var_12 ] = true ;
      for ( int var_14 = var_12 + 1 ;
      var_14 < var_6 ;
      var_14 ++ ) {
        if ( var_2 . charAt ( var_12 ) == var_2 . charAt ( var_14 ) && ( var_12 + 1 == var_14 || var_8 [ var_12 + 1 ] [ var_14 - 1 ] ) ) {
          var_8 [ var_12 ] [ var_14 ] = true ;
          var_11 = var_11 . length ( ) <= ( var_14 - var_12 + 1 ) ? var_2 . substring ( var_12 , var_14 + 1 ) : var_11 ;
        }
      }
    }
    return var_11 ;
  }
  