题解 | #最长回文子串#

最长回文子串

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)
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务