题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
char[] arr = in.nextLine().toCharArray();
//以i或者(i,i+1)位置的节点为中间节点,向两边辐射
int max = 0;
for(int i = 0; i < arr.length; i++){
int t = i;
int i1 = t;
int j1 = t + 1;
int i2 = t;
int j2 = t + 1;
while(i1 > 0 && j1 < arr.length && arr[i1 - 1] == arr[j1]){
i1--;
j1++;
}
while(i2 >= 0 && j2 < arr.length && arr[i2] == arr[j2]){
i2--;
j2++;
}
max = Math.max(max, Math.max(j1 - i1, j2 - i2 - 1));
i = t;
}
System.out.println(max);
}
}
}
查看15道真题和解析