Advertisement
md5kafka

Untitled

Oct 3rd, 2022
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.91 KB | None | 0 0
  1. //   b a b a d
  2. // b T        F  
  3. // a   T   T
  4. // b     T
  5. // a       T
  6. // d F F F F T
  7.  
  8. // Longer up and to the right
  9. // Shorter is down and to the left
  10. // Fill from bottom right to up?
  11. //   c b b d
  12. // c T      
  13. // b   T  
  14. // b     T
  15. // d       T
  16.  
  17. //   a a a a
  18. // a T
  19. // a   T
  20. // a     T T
  21. // a       T
  22. class Solution {
  23.     public String longestPalindrome(String s) {
  24.         int length = s.length();
  25.         String max = null;
  26.        
  27.         boolean[][] dp = new boolean[length][length];
  28.        
  29.         for(int i = length - 1; i>= 0; i--) {
  30.             for(int j = i; j<length; j++) {
  31.                 dp[i][j] = s.charAt(i) == s.charAt(j) && (j - i < 3 || dp[i + 1][j - 1]);
  32.                
  33.                 if (dp[i][j] && (max == null || j - i + 1 > max.length())) {
  34.                     max = s.substring(i, j + 1);
  35.                 }
  36.             }
  37.         }
  38.         return max;
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement