题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
import java.util.*;
public class Solution {
/**
* NC17 最长回文子串(从中心往两边扩展)
*/
public static int getLongestPalindrome(String A) {
int maxlen = 1;
//以每个点为中心
for (int i = 0; i < A.length() - 1; i++) {
//分奇数长度和偶数长度向两边扩展
maxlen = Math.max(maxlen, Math.max(fun(A, i, i), fun(A, i, i + 1)));
}
return maxlen;
}
private static int fun(String s, int left, int right) {
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
left--;
right++;
}
//返回长度
return right - left - 1;
}
}
