给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。
var longestPalindrome = function (s) {
var i = 0;
var _obj = {};
var l = s.length;
var max = 0;
var firstIndex = 0;
var lastIndex = 0;
// 处理边界
if (!s) return 0
if (l === 1 || (l === 2 && s[0] === s[1])) return s;
if (l === 2 && s[0] !== s[1]) return s[0]
// 获取回文
for (i = 0; i < l; i++) {
var j = i;
while (j >= 0) {
if (s[j] === s[i] && (i - j < 2 || _obj[(j + 1) + ',' + (i - 1)])) {
_obj[j + "," + i] = true;
if (i - j + 1 > max) {
max = i - j + 1;
firstIndex = j;
lastIndex = i + 1;
}
}
j--
}
}
return s.substring(firstIndex, lastIndex);
};