<gouthampradhan>dynamic_programming_PalindromicSubstrings_1.java
public int countSubstrings(String s) {
    boolean[][] T = new boolean[s.length()][s.length()];
    int count = s.length();
    for (int i = 0, j = 0; i < T.length; i++, j++) {
      T[i][j] = true;
    }
    for (int k = 1, col = s.length(); k < col; k++) {
      for (int i = 0, j = k; i < col && j < col; i++, j++) {
        if (k == 1) {
          if (s.charAt(i) == s.charAt(j)) {
            T[i][j] = true;
            count++;
          }
        } else {
          if (s.charAt(i) == s.charAt(j) && T[i + 1][j - 1]) {
            T[i][j] = true;
            count++;
          }
        }
      }
    }
    return count;
  }
public int sample_funcname ( String var_1 ) {
  boolean [ ] [ ] var_4 = new boolean [ var_1 . length ( ) ] [ var_1 . length ( ) ] ;
  int var_5 = var_1 . length ( ) ;
  for ( int var_7 = 0 , var_8 = 0 ;
  var_7 < var_4 . length ;
  var_7 ++ , var_8 ++ ) {
    var_4 [ var_7 ] [ var_8 ] = true ;
  }
  for ( int var_10 = 1 , var_11 = var_1 . length ( ) ;
  var_10 < var_11 ;
  var_10 ++ ) {
    for ( int var_7 = 0 , var_8 = var_10 ;
    var_7 < var_11 && var_8 < var_11 ;
    var_7 ++ , var_8 ++ ) {
      if ( var_10 == 1 ) {
        if ( var_1 . charAt ( var_7 ) == var_1 . charAt ( var_8 ) ) {
          var_4 [ var_7 ] [ var_8 ] = true ;
          var_5 ++ ;
        }
      }
      else {
        if ( var_1 . charAt ( var_7 ) == var_1 . charAt ( var_8 ) && var_4 [ var_7 + 1 ] [ var_8 - 1 ] ) {
          var_4 [ var_7 ] [ var_8 ] = true ;
          var_5 ++ ;
        }
      }
    }
  }
  return var_5 ;
}
