题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
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)
}