AcWing 139. 回文子串的最大长度
原题链接
简单
作者:
小王子和他的狐狸
,
2019-05-15 01:48:29
,
所有人可见
,
阅读 1391
class Solution {
public String longestPalindrome(String s) {
if(s.length() == 0)
return "";
char[] c = s.toCharArray();
int[] range = new int[2];
for(int i = 0; i < s.length(); i ++){
i = next(c,i,range);
}
return s.substring(range[0],range[1]+1);
}
int next(char[] c, int low, int[] range){
int max = c.length - 1;
int high = low;
while(high < max && c[high+1] == c[low])
high ++;
int result = high;
while(low > 0 && high < max && c[high+1] == c[low-1]){
low --;
high ++;
}
if((high - low) > (range[1]-range[0])){
range[0] = low; range[1] = high;
}
return result;
}
}