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

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

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

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
// 双指针法
rl.on('line', function (line) {
    // 双指针,一个指向数字字符串左边,一听歌指向右边
    let [left, right] = [0,1]
    // 保存所有数字字符串
    let res = []
    // 保存数字四字符串的最大长度
    let max = 0
    while(left < line.length){
        // 找到某个数字字符串的子一个数字
        if(/[0-9]/.test(line[left])){
            right = left + 1
            // 找到数字字符串的最有一个字符的下一个字符,方便slice操作
            while(/[0-9]/.test(line[right]) && right < line.length){
                right++
            }
            // 截取数字字符串
            const tmp = line.slice(left, right)
            // 保存最大长度
            max = Math.max(max, tmp.length)
            // 保存數字字符串
            res.push(tmp)
            // 移动左指针
            left = right
        }
        left++
    }
    // 根据要求展示最长的数字字符串
    console.log(`${res.filter(item=>item.length === max).join('')},${max}`)

});

全部评论

相关推荐

合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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