思路一:从中心开始扩展,分两种情况判断
public int maxLength = 1; public int start = 0; public String longestPalindrome(String s) { if(null == s || s.length() == 0) { return ""; } char[] arr = s.toCharArray(); for(int i = 0 ; i< arr.length ; i++) { isPalindrome(i-1,i+1,arr); //以arr[i]为中心点 isPalindrome(i,i+1,arr); //没有中心点 } return s.substring(start,start+maxLength); } public void isPalindrome(int left , int right,char[] arr) { while(left >= 0 && right < arr.length && arr[left] == arr[right]) { if(right - left + 1 > maxLength) { maxLength = right - left + 1; start = left; } left--; right++; } }