最长回文子串 发表于 2019-03-01 | 更新于 2022-11-01 | 阅读次数: 12345678910111213141516171819202122232425262728293031323334353637import java.util.Scanner;public class Main { public String longestPalindrome(String s) { int curLen = 0; int start = -1; char[] array = s.toCharArray(); for (int i = 0; i < array.length; i++) { if (isPalindrome(array, i - curLen - 1, i)) { start = i - curLen - 1; curLen += 2; } else if (isPalindrome(array, i - curLen, i)) { start = i - curLen; curLen += 1; } } return new String(array, start, curLen); } private boolean isPalindrome(char[] array, int start, int end) { if (start < 0) { return false; } while (start < end) { if (array[start++] != array[end--]) { return false; } } return true; } public static void main(String[] args) { Scanner in = new Scanner(System.in); String string = in.nextLine(); System.out.println(new Main().longestPalindrome(string)); }} 参考链接 (AC) relatively short and very clear Java solution LeetCode 5. Longest Palindromic Substring 最长回文子串——Manacher 算法