题解 | #密码截取#

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

就很简单,双指针 + 中心扩散

  1. 遍历数组
  2. 从中心点开始
  • 这里又要分子串长度为偶数和奇数的情况
  1. 找到中心点往两边扩散,注意边界情况
  2. 循环结束,输出即可
let searchLen = (l, r, data) => {
    let res = 0, len = data.length
    while (l > -1 && r < len && data[l] === data[r]) {
            res = Math.max(res, r - l + 1)
            l--
            r++
    }
    return res
}
let main = () => {
    let input = readline()
    let data = input.split('')
    // 双指针 两边扩散
    let res = 0
    let len = data.length
    for (let i = 0; i < len; i++) {
        // 先假设回文长度为偶数
        let l = i, r = i + 1
        res = Math.max(searchLen(l, r, data), res)

        // 若回文长度为奇数
        l = i - 1, r = i + 1
        res = Math.max(searchLen(l, r, data), res)
    }

    console.log(res)
}
main()
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:23
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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