天天看點

leetcode 5. 最長回文子串(JavaScript實作)題目要求代碼

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