题解 | #在字符串中找出连续最长的数字串#

在字符串中找出连续最长的数字串

http://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec

while(line = readline()){
  // 最后加一个,防止最后一个是数字,使得判断不能够结尾
    line += '|'
  // 判断字符是否为数字
    const isNumber = letter => {
        let num = letter.charCodeAt() - 48
        return num >=0 && num <= 9
    }
    const LEN = line.length
    let max = 0
    // 将每个一样长度的数字串连接放在一个map的属性中
    let map = new Map()
    // 前面一个是否是数字
    let flag = false
    // 当前前面已经有几个连续的数字
    let num = 0
    for(let i = 0; i < LEN; i++){
      
        if(isNumber(line[i])){
            num++
            if(!flag){
                flag = true
            }
        }else{
            if(flag){
                max = Math.max(max, num)
                if(map.has(num)){
                    map.set(num, map.get(num) + line.slice(i - num, i))
                }else{
                    map.set(num, line.slice(i - num, i))
                }
                flag = false
                num = 0
            }
        }
    }
    console.log(map.get(max) + "," + max)
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务