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