题解 | #密码截取#

密码截取

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

这道题的主要分为两种情况,对于每个元素,分是否作为中心点考虑,如果是中心点,let l=index-1,let r=index+1,否则的话,let l=index,let r=index+1

let input=readline()
let arr=Array.from(input)
let res=[]
for(let i=0;i<arr.length;i++){
    let a=d1(i,arr)
    let b=d2(i,arr)
//     console.log(a,b)
    res[i]=Math.max(a,b)
}
console.log(Math.max(...res))
function d1(index,arr){
    let l=index-1
    let r=index+1
    let count=1
    while(l>=0&&r<arr.length){
        if(arr[l]==arr[r]){
            count+=2
            l--
            r++
        }else{
            break
        }
    }
    return count
}
function d2(index,arr){
    let l=index
    let r=index+1
    let count=0
    while(l>=0&&r<arr.length){
        if(arr[l]==arr[r]){
            count+=2
            l--
            r++
        }else{
            break
        }
    }
    return count
}
全部评论
没考虑到对称的中心点个数是奇数还是偶数的情况
点赞 回复 分享
发布于 2023-11-22 13:28 甘肃
报程序超出内存了
点赞 回复 分享
发布于 2023-11-09 15:22 安徽
真不错
点赞 回复 分享
发布于 2022-05-26 22:16

相关推荐

06-20 15:23
门头沟学院 Java
难道你们背八股都不觉得累?现在每天背八股背的我想吐
想去大厂的土豆子:累不累都是对比出来的,八股可比高考、考研轻松多了
点赞 评论 收藏
分享
评论
12
2
分享

创作者周榜

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