HJ19 题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
这个题目的描述容易产生歧义,或者说描述不太明确,具体问题在注释中阐述。
#Tips: #字典是无序的,没有第一个的概念,这道题用字典做应该有点麻烦 #思路: #使用字典存储,文件名和行数做键,错误个数做值 #放弃字典,使用两个列表做 #题目的坑: #这个题目描述有歧义,按他的描述可以有两个思路: #1、最多存8条记录,新的记录如果在里面则将该记录+1,如果不在则删除第一条记录再新增 #2、可以存所有的记录,有相同的直接+1,只是在输出的时候输出最后8条 #这两种思路做出来的结果是不一样的 #我认为可以将题目中的【1、 记录最多8条错误记录...】改为【1、 记录所有错误记录,输出最近8条错误记录】 f=[]#文件列表 n=[]#数量列表 while True: try: a=input() #可能带路径 if "\\" in a: a=a.split("\\")[-1] #判断长度 b=a.split()[0]#获取文件名 c=a.split()[1]#获取行号 if len(b)>16: a=b[-16:]+" "+c #新增记录 if a not in f: f.append(a) n.append(1) else: n[f.index(a)]+=1 #如果理解为只能存储8条就会写出下面注释这段代码 #新增完毕之后检查记录数量是否超过8 #if len(f)>8: # f.pop(1) # n.pop(1) except: #输出 f=f[-8:] n=n[-8:] for i in range(len(f)): print(f[i],n[i]) break#华为##华为od##华为机试##华为od机试#
华为HJ103所有解法 文章被收录于专栏
这是我准备华为od面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~