海量字符串中查找重复数

来源:互联网 发布:推广软件拦截 编辑:程序博客网 时间:2024/04/30 01:59

问题:给定一个文件,包含1亿个字符串,输出其中重复的字符串和重复次数。

解法:
采用一个函数将字符串映射为整数(类似hash())。
遍历字符串,根据映射值,放到某个文件(每个文件有一个映射值区间),这样重复的字符串必定在同一个文件中;
遍历各个文件:使用map计算重复数,输出重复数>2的;

for each string {    int i = hash(s);    j = i/10000;    put s into file:j;}for each file {    statistic each string;}
0 0