import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.next();
int[] allLength = new int[str.length()];
for(int i=0; i<str.length(); i++){
allLength[i] = Math.max(expandAroundCenter(str,i-1,i+1),expandAroundCenter(str,i,i+1));
}
Arrays.sort(allLength);
System.out.println(allLength[allLength.length-1]);
}
}
public static int expandAroundCenter(String str,int left,int right){
if(str.length()<2) return str.length();
int maxLength = 1;
while(left>=0&&right<str.length()&&str.charAt(left)==str.charAt(right)){
if((right-left+1)>maxLength){
maxLength = right-left+1;
}
left--;
right++;
}
return maxLength;
}
}
最长回文子串
最新推荐文章于 2025-07-27 01:58:20 发布
本文介绍了一种用于查找字符串中最长回文子串的Java算法。通过使用中心扩展法,该算法能够有效地找到给定字符串中所有可能的回文子串,并返回最长的一个。文章详细解释了算法的工作原理,包括如何从每个字符为中心向两边扩展来判断是否形成回文。
1007

被折叠的 条评论
为什么被折叠?



