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

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

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

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let strs = [];
rl.on('line', function (line) {
    strs.push(line);
});

rl.on('close', function(){
    let res = sol(strs);
    for(let i of res){
        console.log(i);
    }
})

function sol(strs: string[]): string[]{
    let reg = /\d+/g;
    let res = [];
    for(let str of strs){
        let match = str.match(reg);
        let max = '';
        if(match){
            match.forEach(str=>{
                if(str.length > max.length){
                    max = str;
                }
            });
            let str = match.filter(str=>str.length === max.length).join('');
            res.push(`${str},${max.length}`)
        }

    }
    return res;
}

通过正则匹配出所有连续数字,得到一个数字串数组。循环一次的到最大长度max,通过数组方法filter筛选出长度等于max的所有数字串,然后通过join方法拼接成一个字符串str(具有相同最大长度的数字串不加空格按照原字符串的相对位置连续输出),再通过模板字符串`${str},${max}`拼接成最终输出格式,加入到结果数组中。

全部评论

相关推荐

秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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