题解 | #最长回文子串#
最长回文子串
http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
let str = readline()
let len = str.length
let dp = new Array(len).fill(false).map(()=>{
return new Array(len).fill(false)
})
for(let i = 0; i < len; i++){
dp[i][i] = true
}
let maxLen = 1
for(let j = 1; j < len; j++){
for(let i = 0; i < j; i++){
if(str[i] !== str[j]){
dp[i][j] = false
}else{
if(j - i <= 2){
dp[i][j] = true
}else{
dp[i][j] = dp[i+1][j-1]
}
}
if(dp[i][j] && j-i+1 > maxLen){
maxLen = j - i + 1
}
}
}
console.log(maxLen)
let len = str.length
let dp = new Array(len).fill(false).map(()=>{
return new Array(len).fill(false)
})
for(let i = 0; i < len; i++){
dp[i][i] = true
}
let maxLen = 1
for(let j = 1; j < len; j++){
for(let i = 0; i < j; i++){
if(str[i] !== str[j]){
dp[i][j] = false
}else{
if(j - i <= 2){
dp[i][j] = true
}else{
dp[i][j] = dp[i+1][j-1]
}
}
if(dp[i][j] && j-i+1 > maxLen){
maxLen = j - i + 1
}
}
}
console.log(maxLen)