题解 | #简单错误记录#
简单错误记录
http://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
if __name__ == "__main__" :
l = []
while (1):
try:
rcv = input()
l.append(rcv)
except:
break
n = [] #新的处理后8个字符串
d = {}
begin = 0
for i in l:
sp0 = i.rindex(' ')
#print(sp0)
sp1 = i.rindex('\\')
#print(sp1)
if(sp0 - sp1 > 16):
key = i[-20:]
else:
key = i[sp1 + 1:]
#print(key)
if len(n) < 8:
b = False
for d in n:
if d.get(key) != None:
d.update({key : d.get(key) + 1})
b = True
if b != True:
n.append({key : 1})
else:
b = False
for d in n:
if d.get(key) != None:
d.update({key : d.get(key) + 1})
b = True
if(b != True):
n.append({key : 1})
begin += 1
for index in range(begin, len(n)):
for key,val in n[index].items():
print(key + " " + str(val))
需要注意的点
1.python 通过捕获异常来确认输入结束
2.直接使用有效地文件名+空格+行数作为map地key值,来表示重复出现
3.不能把map数组删除,因为后面出现的文件名 计数是否+1 是遍历所有出现过的文件名,故只需要对结束后数组开始遍历的索引+1即可, 即代码中的begin