leetcode[5]最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
let n=s.length;
if(n<2){
return s;
}
//初始化二维数组
const dp=[];
for(let i=0;i<n;i++){
dp[i]=[];
for(j=0;j<n;j++){
if(i==j){
dp[i][j]=true;
}else{
dp[i][j]=false;
}
}
}
let start=0;
let maxlength=1;
//相等的在对角线上,开始从下到上,从左到右遍历
for(i=n-1;i>=0;i--){
for(j=i+1;j<n;j++){
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]==true&&j-i+1>maxlength){
maxlength=j-i+1;
start=i;
}
}
}
return s.substring(start,start+maxlength);
};