(JavaScript实现)@[TOC](leetcode 5. 最长回文子串)
题目要求
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。
示例 2:
输入: “cbbd”
输出: “bb”
代码
下面展示一些 内联代码片
。
var longestPalindrome = function(s) {
if (s.length < 2) {
return s;
}
let start = 0;
let maxlength = 1;
function expandAroundCenter(left, right) {
while (left >= 0 && right < s.length && (s[left] == s[right])) {
if (right - left + 1 > maxlength) {
maxlength = right - left + 1;
start = left;
}
left--;
right++;
}
}
for (let i = 0; i < s.length; i++) {
expandAroundCenter(i, i + 1);
expandAroundCenter(i - 1, i + 1);
}
return s.substring(start, start + maxlength);
};