回文子串:偶数(ddcc)奇数(dcd)两种形式

思路:以每个位置字符为中心,向两边延申判断是否回文,枚举每个位置的最长回文子串,可以得到全局的最长回文子串

class Solution {
    public String longestPalindrome(String s) {
        int maxlen = 0;
        String ans = "";
        for(int i = 0; i < s.length(); i ++) {
            int j = 1;
            while((i - j >= 0) && (i + j < s.length()) && (s.charAt(i - j) == s.charAt(i + j))) j ++;
            
            if(2 * j - 1 > maxlen) {
                maxlen = 2 * j - 1;
                ans = s.substring(i - j + 1, i + j);
            }
            j = 0;
            while((i - j >= 0) && (i + 1 + j < s.length()) && (s.charAt(i - j) == s.charAt(i + 1 + j))) j ++;
            if(2 * j > maxlen) {
                maxlen = 2 * j;
                ans = s.substring(i - j + 1, i + 1 + j);
            }
        }
        return ans;
    }
}