1.遍历字符串的所有字符,由于回文串的长度可能是偶数,也可能是奇数。

2.对每个字符是回文串的奇数位或偶数位,分奇数和偶数进行讨论。

3.得出最长回文子串的长度。



public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param A string字符串 
     * @return int整型
     */
    public int getLongestPalindrome (String A) {
        // write code here
        int max = 0;
        int odd = 0,even = 0;
        for (int i = 0; i < A.length(); i++) {
            if(i==0){
                odd = 1;
               even = dfs(A,i,i+1);
            }else {
                odd = dfs(A,i-1,i+1);
                even = dfs(A,i,i+1);
            }
            max = max>odd?max:odd;
            max = max>even?max:even;
        }
        return max;
    }
    private int dfs(String A,int left,int right){
        String str = null;
        while (left>=0&&right<A.length()){
            if(A.charAt(left)==A.charAt(right)){
                str = A.substring(left,right+1);
                left--;
                right++;
            }else {
                break;
            }
        }
        return str ==null?0:str.length();
    }
}