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

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

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}`)

});

全部评论

相关推荐

07-01 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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