【剑指offer】最长回文子串

  |   0 评论   |   0 浏览

题目

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

我的答案

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function (s) {
    var res = '';
    for (let i = 0; i < s.length; i++) {
        const oddStr = getMaxStr(s, i, i);
        const eveStr = getMaxStr(s, i, i + 1);
        const tempMax = oddStr.length > eveStr.length ? oddStr : eveStr;
        res = res.length > tempMax.length ? res : tempMax;
    }
    return res;

};
var getMaxStr = function (s, l, r) {
    while (l >= 0 && r < s.length && s[l] === s[r]) {
        l--;
        r++;
    }
    return s.substring(l + 1, r );

}

中心扩散法,按照回文序列的特点,左右增加时左右两边字符串必须相等,所以一一个或两个为核心进行扩散


标题:【剑指offer】最长回文子串
作者:limanting
地址:https://blog.manxiaozhi.com/articles/2021/10/07/1633537705368.html