刷题去WLB965 统计文件中出现次数最高的单词

ww15510313428 · 2021年01月19日 · 最后由 rihkddd 回复于 2021年01月20日 · 5844 次阅读

一个文件中有一个英文段落,单词之间用英文逗号、英文句号、空格分割。
统计这个段落中出现次数最高的 5 个单词,并输出其输出次数。

共收到 5 条回复 时间 点赞

用最笨的方法呗。

如果用 python 的话,collection 模块中 defaultdict 可以做到。哦,你这是统计单词,不是单个字符串,那要是我就切割文本,弄成 list,再用 Counter 去做。或者量大看看用 pandas 来做

TopK 问题可以考虑用堆解决

直接把段落当成一段字符串 根据符号 split 成 list 然后用 count 就可以得出结果了吧 无非是遍历统计数据之后再排序

从内存占用优化考虑:用字典树。
从时间效率优化考虑:肯定要线性扫描一遍,不管在内存里面还是从磁盘读,扫一遍文本的时间是主要时间。
单拿 top 5 分析,5 这个常数太小了,没必要用堆,遍历 5 遍更快。
扩展到 topK 的问题,堆也不是最优的解法。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册