import java.util.*; public class Solution { public int getLongestPalindrome(String A, int n) { // write code here if("".equals(A)){ return 0; } int res = 0; for(int i = 0;i<A.length();i++){ char next = A.charAt(i); //每拿出一个字符 都从尾部去找到相同的字符 然后判断这段是不是回文子串 for(int j = A.length() - 1;j>i;j--){ char next2 = A.charAt(j); if(next == next2){ boolean b = juage(i,j,A); if(b){ int count = j - i + 1; res = Math.max(res,count); } } } } return res; } //判断i 到 j这一段是不是回文字符 是返回j - i + 1, public boolean juage(int i,int j,String A){ int cha = j - i; int middle = i + cha / 2; if(cha % 2 == 1){ for(int k = i ;k<=middle;k++){ int next = A.charAt(k); int next2 = A.charAt(k + 2 * (middle - k) + 1); if(next != next2){ return false; } } return true; } else { for(int k = i ;k<middle;k++){ int next = A.charAt(k); int next2 = A.charAt(k + 2 * (middle - k)); if(next != next2){ return false; } } } return true; } }