(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);
};