马拉松算法 - 最长回文子串-java
算法解释的链接
链接: link.
下面是java代码。
// An highlighted block
class Solution {
public String longestPalindrome(String s) {
String str = preHandleString(s);
int len = str.length();
//当前的最右和最右的中心点
int right = 0;
int rightCenter = 1;
//用于保存以i为中心的时候的最长半径
int[] halfLenArr = new int[len];
//历史的最长子串的中心和长度
int center = 0;
int longestHalf = 0