没什么技巧,就是逐个增加字符,然后判断是否是回文,因为前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); } }