题解 | 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。