回文子串:偶数(ddcc)奇数(dcd)两种形式
思路:以每个位置字符为中心,向两边延申判断是否回文,枚举每个位置的最长回文子串,可以得到全局的最长回文子串
class Solution {
public String longestPalindrome(String s) {
int maxlen = 0;
String ans = "";
for(int i = 0; i < s.length(); i ++) {
int j = 1;
while((i - j >= 0) && (i + j < s.length()) && (s.charAt(i - j) == s.charAt(i + j))) j ++;
if(2 * j - 1 > maxlen) {
maxlen = 2 * j - 1;
ans = s.substring(i - j + 1, i + j);
}
j = 0;
while((i - j >= 0) && (i + 1 + j < s.length()) && (s.charAt(i - j) == s.charAt(i + 1 + j))) j ++;
if(2 * j > maxlen) {
maxlen = 2 * j;
ans = s.substring(i - j + 1, i + 1 + j);
}
}
return ans;
}
}