一个文件中有一个英文段落,单词之间用英文逗号、英文句号、空格分割。 统计这个段落中出现次数最高的 5 个单词,并输出其输出次数。
用最笨的方法呗。
如果用 python 的话,collection 模块中 defaultdict 可以做到。哦,你这是统计单词,不是单个字符串,那要是我就切割文本,弄成 list,再用 Counter 去做。或者量大看看用 pandas 来做
TopK 问题可以考虑用堆解决
直接把段落当成一段字符串 根据符号 split 成 list 然后用 count 就可以得出结果了吧 无非是遍历统计数据之后再排序
从内存占用优化考虑:用字典树。 从时间效率优化考虑:肯定要线性扫描一遍,不管在内存里面还是从磁盘读,扫一遍文本的时间是主要时间。 单拿 top 5 分析,5 这个常数太小了,没必要用堆,遍历 5 遍更快。 扩展到 topK 的问题,堆也不是最优的解法。