有一个日志文件,包含了多个会话的方法调用信息,日志格式如下: seq_number,session_id,method,timestamp,headers,payload,extra_data 请编写一个程序,找出出现频率最高的方法调用序列模式,并输出:
● 一共有多少个会话
● 有多少个会话中出现了该模式
● 该模式在所有会话中出现的次数 其中,方法调用序列模式包含的方法个数可以调整。
- 可以通过map来分割session_id,方法
- 然后分别读去文件来做一个反序列化,这里如果但但只是方法的话可以自己做分割,并不需要完全序列化【优化点】但是正常来说没必要。(读文档可以采用chanel来传送,预判考官会提出steam状态的日【感觉正常场景就是这样子用的】
- 分析需求 "有多少个会话中出现了该模式","该模式在所有会话中出现的次数",遍历一下全部的时候分别 去重 session_并且加上
- 分析是暴力O(n*Step(设置匹配的长度)),能不能用dp去优化(想看其他题目,先实现)
- 因为是使用两个channel去进行生产和消费,很轻易的就能改成更多消费者和更多生产者更多携程
- 文件的结构可以优化,可以封装一层。