没什么技巧,就是逐个增加字符,然后判断是否是回文,因为前i个必定回文,从第i个开始判断是否回文。
换句话说,就是求,包含最后一位字符的最大回文子串

import java.util.*;
public class Main{
    public static boolean func(String s,int p){
        boolean flag;
        int q=s.length()-1;
        while(p<q){
            if(s.charAt(p)!=s.charAt(q)){
                return false;
            }
            p++;
            q--;
        }
        return true;
    }

    public static void main(String[] main){
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        int len=s.length();
        for(int i=0;i<s.length();i++){
            if(func(s,i)){
                len+=i;
                break;
            }
        }
        System.out.println(len);
    }
}