力扣-最长回文子串

给你一个字符串 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);
};
相关推荐
故事和你914 小时前
sdut-程序设计基础Ⅰ-实验五一维数组(8-13)
开发语言·数据结构·c++·算法·蓝桥杯·图论·类和对象
像污秽一样4 小时前
算法与设计与分析-习题4.2
算法·排序算法·深度优先·dfs·bfs
Storynone5 小时前
【Day20】LeetCode:39. 组合总和,40. 组合总和II,131. 分割回文串
python·算法·leetcode
明明如月学长5 小时前
AI 更新太快学不过来?我用OpenClaw打造专属AI学习工作流
算法
黎阳之光6 小时前
【黎阳之光:以无线专网与视频孪生,赋能智慧广电与数字中国】
算法·安全·智慧城市·数字孪生
刀法如飞7 小时前
Agentic AI时代,程序员必备的算法思想指南
人工智能·算法·agent
刀法如飞7 小时前
Agentic AI时代程序员必备算法思想详解(附实战案例)
算法·ai编程·编程开发·agentic
飞Link7 小时前
告别盲目找Bug:深度解析 TSTD 异常检测中的预测模型(Python 实战版)
开发语言·python·算法·bug
记忆多8 小时前
c++名字空间 函数模版 左右值
开发语言·c++·算法
三伏5228 小时前
控制理论前置知识——相平面数学基础2(示例部分)
算法·平面·控制