leetCode算法—5. 最长回文子串

发布时间:2023年12月18日

给你一个字符串 s,找到 s 中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

示例 1:

输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。
示例 2:

输入:s = “cbbd”
输出:“bb”

提示:

1 <= s.length <= 1000
s 仅由数字和英文字母组成

解法:

const longestPalindrome = function (s) {
    if (s < 2) return s;
    let res = "";
    const len = s.length;
    for (let i = 0; i < len; i++) {
        if (res.length === len) break;
        helper(i, i);
        if (s[i] === s[i + 1]) {
            helper(i, i + 1);
        }
    }
    function helper(l, r) {
        while (l >= 0 && r < len && s[l] === s[r]) {
            l--;
            r++;
        }
        if (r - l - 1 > res.length) {
            res = s.slice(l + 1, r);
        }
    }
    return res;
};

上一篇:leetCode算法—4.寻找两个正序数组的中位数
下一篇:

文章来源:https://blog.csdn.net/weixin_43169949/article/details/135054772
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。