题解 | HJ85#最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
//HJ85
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
//双指针 一头一尾
char[] chars = str.toCharArray();
ArrayList<Integer> list = new ArrayList<>();
String substring = "";
for (int i = 0; i < chars.length; i++) {
for (int j = chars.length - 1; j > i; j--) {
if (chars[i] == chars[j]) {
//判断str.substring(i,j+1)是不是回文串
if (j == chars.length - 1) {
substring = str.substring(i);
// System.out.println(substring);
} else {
substring = str.substring(i, j + 1);
// System.out.println(substring);
}
if (IsHuiWenSubString(substring)) {
int length = substring.length();
// System.out.println(substring);
list.add(length);
};
}
}
}
// System.out.println(list);
Integer max = Collections.max(list);
System.out.println(max);
}
//判断一个字符串是否是回文子串
public static boolean IsHuiWenSubString(String str) {
StringBuilder stringBuilder = new StringBuilder(str);
StringBuilder stringBuilderReverse = stringBuilder.reverse();
String reverse = stringBuilderReverse.toString();
return str.equals(reverse);
}
}
双指针i,j一头一尾开始遍历 保证j>i。

