思路:中心扩散法
长度为奇数的回文子串中心有一个元素;
长度为偶数的回文子串中心有两个元素;
代码
class Solution {
public String longestPalindrome(String s) {
if (s.isEmpty()) {
return "";
}
int l = 0, r = 0;
for (int i = 0; i < s.length(); ++i) {
int l1 = getLen(s, i, i);
int l2 = getLen(s, i, i + 1);
int maxLen = Math.max(l1, l2);
if (maxLen > r - l) {
l = i - (maxLen - 1) / 2;
r = i + maxLen / 2;
}
}
return s.substring(l, r + 1);
}
public int getLen(String s, int i, int j) {
while (i>= 0 && j < s.length() && s.charAt(i) == s.charAt(j)) {
i--;
j++;
}
return j - i - 1;
}
}