题解 | #简单错误记录#

简单错误记录

http://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

// 使用数组的数据结构,保存结果用以输出
let res = []
while(line = readline()){
    // 这里的line要通过转义\\将反斜杠拆分
    let string = line.split('\\').pop()
    let fileName = getFileName(string.split(' ')[0])
    let errline = string.split(' ')[1]
//     console.log(fileName, errline)
    initRes(fileName, errline)
}
outResult()



function getFileName(name){
    if(name.length > 16){
        return name.substr(-16)
    }else{
        return name
    }
}

// 这里查找的时间复杂度 O(n)
function initRes(fileName, line){
    let index = res.findIndex(item => {
        return item.fileName == fileName && item.line == line
    })
    if(index >= 0){
        res[index] = {
            ...res[index],
            count: res[index].count + 1
        }
    }else{
        res.push({
            fileName, 
            line, 
            count: 1
        })
    }
}

// 打印结果
function outResult(){
    if(res.length > 8){
        res = res.slice(-8)
        outResult()
    }else{
        res.forEach(value => {
            console.log(value.fileName + ' ' + value.line + ' ' + value.count)
        })
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务