xianzao / xianzao-interview

前端 每日一道面试题
64 stars 4 forks source link

【2022.12.13】最长回文子串 #17

Open xianzao opened 1 year ago

xianzao commented 1 year ago

给你一个字符串 s,找到 s 中最长的回文子串。

提示:

xianzao commented 1 year ago
/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    let max = 0,
        start = -1;
    for (let i = 0; i < s.length; i++) {
        let left = i - 1,
            tmp = 1;
        while(s[i] === s[i+1]) {
            tmp++;
            i++;
        }
        let right = i + 1;
        while(s[left] === s[right] && s[left] !== undefined) {
            left--;
            right++;
            tmp += 2;
        }
        if (max < tmp) {
            max = tmp;
            start = left + 1;
        }
    }
    return s.slice(start, start + max)
};