0
点赞
收藏
分享

微信扫一扫

5. 最长回文子串 leetcode

alonwang 2022-02-27 阅读 77

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

示例 1:

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

输入:s = "cbbd"
输出:"bb"
 

提示:

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

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    let dp = Array.from(new Array(s.length), () => new Array(s.length).fill(false));
    console.log(dp)
    let max = -Infinity;
    let res = ''
    if (s.length == 1) {
        return s
    }
    for (let i = s.length - 1; i >= 0; i--) {
        for (let j = i; j < s.length; j++) {
            if (s[i] === s[j]) { // 如果相等的话  
                if (j - i <= 1 || dp[i + 1][j - 1]) {
                    dp[i][j] = true;
                    if (j - i +1 > max) {
                        max = j - i +1
                        res = s.substring(i, j+1);
                    }
                }
            }
        }

    }
    return res;
};
举报

相关推荐

0 条评论