题目
代码
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
var res = '';
for (var i=0; i<s.length; i++) {
var s1 = palindrome(s, i, i); // 回文串长度为奇数
var s2 = palindrome(s, i, i+1); // 回文串长度为偶数
res = res.length > s1.length ? res : s1;
res = res.length > s2.length ? res : s2;
}
return res;
};
/**
* 寻找回文串的函数:双指针法
* 定义左右指针,从中间往两边散开,寻找回文串
*/
var palindrome = function(s, l, r) {
// 防止越界
while(l>=0 && r<s.length && s[l]===s[r]) {
l--; // 左指针往左挪一位
r++; // 有指针往右挪一位
}
return s.slice(l+1, r);
}