题解 | #简单错误记录#

简单错误记录

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

# 1、根据题目意思是保存的8个是先进先出,用一个长度为8的队列存储
# 2、用一个字典存储文件名 + 行号对应的错误个数
# 3、如果文件名(最后16位) + 行号在字典中已存在,那么不再放入队列,仅仅将字典中对应的计数加一
# 4、输出时遍历列表,然后取字典中对应的Value值

from queue import Queue


alist = Queue(8)
adict = {}
def add_to_loop_list(item):
    global cur_index
    if alist.full():
        alist.get()
    alist.put(item)


import sys
import os
lines = sys.stdin.read().split("\n")[:-1]
for line in lines:
    path, line_num = line.rsplit(" ")
    filename = path.rsplit("\\", 1)[-1]
    filename = filename[-16:] if len(filename) > 16 else filename
    # print(filename, line_num)
    atuple = (filename, line_num)
    if adict.get(atuple):
        adict[atuple] += 1
    else:
        adict[atuple] = 1
        add_to_loop_list(atuple)

tmp = alist.get()
while tmp:
    filename, line_num = tmp
    print(filename, line_num, sep=" ", end=" ")
    print(adict[tmp])
    if alist.empty():
        break
    tmp = alist.get()

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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