力扣-最长回文子串

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

示例 1:

复制代码
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

示例 2:

复制代码
输入:s = "cbbd"
输出:"bb"

提示:

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

实现代码:

javascript 复制代码
/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s){
    const n = s.length;
    if (n < 2) return s;
    const dp = new Array(n).fill(false).map(() => new Array(n).fill(false));
    let maxLen = 1;
    let begin = 0;
    for (let i = 0; i < n; i++) {
        dp[i][i] = true;
    }
    for (let L = 2; L <= n; L++) {
        for (let i = 0; i < n; i++) {
            const j = i + L - 1;
            if (j >= n) break;
            
            if (s[i] !== s[j]) {
                dp[i][j] = false;
            } else {
                if (j - i < 3) {
                    dp[i][j] = true;
                } else {
                    dp[i][j] = dp[i + 1][j - 1];
                }
            }
            if (dp[i][j] && L > maxLen) {
                maxLen = L;
                begin = i;
            }
        }
    }
   return s.substring(begin, begin + maxLen);
};
相关推荐
我不是小upper3 分钟前
详细到用手撕transformer下半部分
算法·机器学习·transformer
coding者在努力23 分钟前
高级数据结构与算法期末考试速成记录
数据结构·算法·动态规划·分治·速成·期末考试
new出对象29 分钟前
C++ 中的函数包装:std::bind()、std::function<>、函数指针与 Lambda
开发语言·c++·算法
测试199839 分钟前
接口自动化测试用例的编写方法
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
理论最高的吻1 小时前
面试题 08.08. 有重复字符串的排列组合【 力扣(LeetCode) 】
c++·算法·leetcode·深度优先·回溯法
AI得贤招聘官2 小时前
近屿智能第六代 AI 得贤招聘官首秀 —— 解锁「拟人化智能交互」AI面试新体验
人工智能·面试·职场和发展
SWHL3 小时前
RapidOCR集成PP-OCRv5_rec_mobile模型记录
算法
进击的小白菜4 小时前
LeetCode 75. 颜色分类 - 双指针法高效解决(Java实现)
java·算法·leetcode
远瞻。4 小时前
【论文精读】2024 ECCV--MGLD-VSR现实世界视频超分辨率(RealWorld VSR)
人工智能·算法·stable diffusion·音视频·超分辨率重建
JK0x074 小时前
代码随想录算法训练营 Day60 图论Ⅹ Bellmen_ford 系列算法
android·算法·图论