题解 | #简单错误记录#
简单错误记录
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()

