题解 | #简单错误记录#华为机试HJ19

简单错误记录

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

小白解题思路,可能对初学者友好一点。

ls = []   # 储存键
dic = {}  # 储存键-值对
while True:
    try:
        msg = input().split()    
        msg[0] = msg[0].split('\\')[-1]        # 路径\分割,只取最后一个
        msg = ' '.join([msg[0][-16:], msg[1]]) # 取后16位及行号(str[-16],num)-> (str[-16] num)  此时属性为字符串
        if msg not in dic.keys():              # 将msg记为字典的key值并判断是否存在
            ls.append(msg)                     # 不存在就将其计入列表ls
            dic[msg] = 1                       	  # 将msg为key的value记录为1
        else:
            dic[msg] += 1                         # 存在msg就在字典中对应值增加计数
    except:
        break
for item in ls[-8:]:                           # 正序遍历后八个存储的键
    print(item, dic[item])                     # 打印键-值对
全部评论
赞👍确实对小白很友好!🤭🤭🤭
点赞
送花
回复 分享
发布于 2022-07-01 16:10
为什么遍历后八个存储的键?
点赞
送花
回复 分享
发布于 2022-11-11 14:45 广东
秋招专场
校招火热招聘中
官网直投
超级棒!
点赞
送花
回复 分享
发布于 2023-01-22 17:58 广东
点赞
送花
回复 分享
发布于 2023-05-16 18:23 陕西
为什么我把最后的for循环放到里面就不对了呢,这是为什么
点赞
送花
回复 分享
发布于 2023-11-02 14:25 浙江
感觉代码有漏洞欸,可是万一有两个文件名很长超过16位了,然后前面不一样,后16位一样的话,这里写的代码就只能判定他们是一样的,请问可不可以解释一下呢,谢谢
点赞
送花
回复 分享
发布于 01-03 23:02 浙江

相关推荐

投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
35 12 评论
分享
牛客网
牛客企业服务