题解 | #最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

// 计算字符串的最长回文子串
function a(str) {
    let m, n, count = 0;
    for (let i = 0; i < str.length; i++) {
        // 奇数
        let c1 = b(str, i, i)
        // 偶数
        let c2 = b(str, i, i+1);
        count = Math.max(count, c1, c2);
    }
    return count;
}
// 计算m,n两个索引位置对应的最长回文子串
function b(str, m, n) {
    while(m>=0 && n<str.length && str[m] === str[n]) {
        m--;
        n++;
    }
    m = m !== -1 ? m+1:0;
    n = n ? n-1:str.length-1;
    return n-m+1;
}
const str = readline();
console.log(a(str));
全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 00:50
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务