本题需要找出所有出现次数大于等于 3 次的日志标识,并按照以下规则排序:
可以使用哈希表完成统计:
在某系统的日志监控服务中,需要实时检测日志文件中的异常模式。系统每天会产生大量日志记录,每条日志记录包含一个字符串标识。异常模式定义为:在同一时间段内,至少出现 3 次的日志标识。
请编写一个程序,找出所有出现次数大于等于 3 次的日志标识,并按照以下规则输出:
日志标识由大小写字母、数字和下划线组成,长度不超过 50
日志总量:[1,10000]
输出所有出现次数大于等于 3 次的日志标识,每行一个,按照上述排序规则输出
如果没有符合条件的日志标识,则输出 "NONE"
输入
["error_404","error_404","warning_500","error_404","info_200","warning_500","warning_500","info_200"]
输出
["error_404","warning_500"]
说明
error_404 出现了 3 次(数组第0、1、3个元素),首次出现位置是第0个元素
warning_500 出现了 3 次(数组第2、5、6个元素),首次出现位置是第2个元素
info_200 只出现了 2 次(数组第4、7个元素),不符合条件
error_404 和 warning_500 出现次数相同(都是3次),按照首次出现的先后顺序,先输出 error_404,再输出 warning_500 注意:虽然 info_200 出现了 2 次,但题目要求的是出现次数大于等于 3 次,因此不输出 info_200
输入
["test_case","test_case","test_case2","test_case2","test_case2"]
输出
["test_case2"]
说明
test_case 出现了 2 次,不符合条件
test_case2 出现了 3 次,首次出现位置是数组第3个元素
只输出 test_case2 注意:test_case 虽然出现次数较多,但只有 2 次,不满足大于等于 3 次的条件