1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| package com.demo.s5;
public class Solution { public String longestPalindrome(String s) { int start = 0; int end = 0; for(int i = 0; i< s.length(); i++) { int len1 = expandAroundCenter(s, i, i); int len2 = expandAroundCenter(s, i, i + 1); int max = Math.max(len1, len2); if(max > end -start + 1) { start = i - (max-1) / 2; end = i + max /2; } } return s.substring(start, end + 1); }
public int expandAroundCenter(String s, int left, int right) { while(left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) { left --; right ++; } return right - left -1; } }
|