力扣刷题:最长回文子串
2026/5/13 5:03:25 网站建设 项目流程

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

示例 1:

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

示例 2:

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

解析:
这道题使用动态规划解决更加的方便,主要还是怎么去定义dp数组,在这里dp[i][j]表示字符串 s 中下标从 i 到 j 的子串 s[i…j] 是否为回文子串。

具体解析见链接:力扣解析

具体代码:

/** * @param {string} s * @return {string} */varlongestPalindrome=function(s){constlen=s.lengthif(len<2)returnsletmaxLength=1letbegin=0constdp=Array.from({length:len},()=>Array(len).fill(false))for(leti=0;i<len;i++){dp[i][i]=true}for(letj=1;j<len;j++){for(leti=0;i<j;i++){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]&&j-i+1>maxLength){maxLength=j-i+1begin=i}}}returns.substring(begin,begin+maxLength)};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询