题目来源:
https://leetcode-cn.com/problems/longest-palindromic-substring/
题目描述:
代码如下:
class Solution {
public String longestPalindrome(String s) {
if (s == null||s.length()==0) {
return "";
}
if (s.length() < 2) {
return s;
}
char[] arr = s.toCharArray();
int[] ret = new int[2];
for (int i = 0; i < arr.length; i++) {
i = longestPalindrome(arr, i, ret);
}
return s.substring(ret[0], ret[1]);
}
private static int longestPalindrome(char[] arr, int low, int[] ret) {
int high = low;
while (high < arr.length - 1 && arr[high + 1] == arr[low]) {
high++;
}
int res = high;
while (low >= 0 && high < arr.length && arr[low] == arr[high]) {
low--;
high++;
}
if (high - low - 1 > ret[1] - ret[0]) {
ret[1] = high;
ret[0] = low + 1;
}
return res;
}
}