题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
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}`拼接成最终输出格式,加入到结果数组中。

查看8道真题和解析