题目:

     有1千万条短信,有重复,以文本文件的形式保存,一行一条。请用5分钟时间,找出重复出现最多的前10条。


struct TNode
{
BYTE* pText;
//直接指向文件映射的内存地址
DWORD dwCount;
//计算器,记录此节点的相同短信数
TNode* ChildNodes[256];
//子节点数据,由于一个字母的ASCII值不可能超过256,所以子节点也不可能超过256
TNode()
{
//初始化成员
}
~TNode()
{
//释放资源
}
};
//int nIndex 是字母下标
void CreateChildNode(TNode* pNode, const BYTE* pText, int nIndex)
{
if (pNode->ChildNodes[pText[nIndex]] == NULL)
{
//如果不存在此子节点,就创建.TNode构造函数//应该有初始化代码
//为了处理方便,这里也可以在创建的同时把此节点加到一个数组中
pNode->ChildNodes[pText[nIndex]] = new TNode;
}
if (pText[nIndex + 1] == '\0')
{
//此短信已完成,计数器加1,并保存此短信内容
pNode->ChildNodes[pText[nIndex]]->dwCount++;
pNode->ChildNodes[pText[nIndex]]->pText = pText;
}
else
{
//if(pText[nIndex]!='\0')如果还未结束,就创建下一级节点
CreateNode(pNode->ChildNodes[pText[nIndex]], pText, nIndex + 1);

}

}
//创建根节点,pTexts是短信数组,dwCount是短信数量//1千万
void CreateRootNode(const BYTE** pTexts, DWORD dwCount)
{
TNode RootNode;
for (DWORD dwIndex = 0; dwIndex < dwCount, dwIndex++)
{
CreateNode(&RootNode, pTexts[dwIndex], 0);
}
//所有结点按dwCount的值进行排序
//取前10个节点,显示结果
}

从一千万条短信中找出重复次数最多的前10条相关推荐

  1. .有一千万条短信,有重复,以文本文件的形式保 请用5 分钟时间,找出重复出现最多的前10 条。

    此为腾讯面试题,木有具体答案... 1.有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复.  请用5 分钟时间,找出重复出现最多的前10 条. 答:1000W条短信,每条最多140个字符 ...

  2. 从亿级数据量的url中找出出现次数最多的前十个url

    流程: mapToPair + reduceByKey:计算每个url的出现次数: mapToPair + sortByKey:反转PairRDD,按照降序的方式对url的出现次数进行排序: take ...

  3. 1亿数字中找出重复次数TopN的问题

    /*** @Date 2020/7/3* @param dataSize 数据量的大小* @param randomNumRange 产生随机数的范围* @param topN 找出重复次数前N的.* ...

  4. 从1亿个ip中找出访问次数最多的IP

    看了教你如何迅速秒杀掉:99%的海量数据处理面试题一文,的确是挺有收获的,特别是对这种海量数据的处理,的确是有了一个挺清晰的思路,特别感谢原文博主July. 处理海量数据问题存在的原因就在于1)数据量 ...

  5. python-两种方法实现:从字符串中找出 出现次数最多的 字母和 对应出现的个数

    -----------------------方法一:使用字典--------------------------- s='aabcdefaabbccdeffffffffffff'c={}for i ...

  6. 10亿个QQ号码,找出重复次数最多的那一个

    hash取模,将号码分散在多个小文件里存储,然后分别对文件内号码排序,统计出现次数最多的那一个,最后对所有最多值取最大的那一个,为所求.

  7. PTA在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。

    在一大堆数据中找出重复的是一件经常要做的事情.现在,我们要处理许多整数,在这些整数中,可能存在重复的数据. 你要写一个程序来做这件事情,读入数据,检查是否有重复的数据.如果有,输出"YES& ...

  8. python查找数列中重复数字_在数组中找出重复的数字(异或法)

    购买本课程后,可以加51CTO学院李宁老师官方交流群:550369460注意,该群只允许购买李宁老师课程的学员进行技术交流,加群时需要提供在51CTO购买李宁老师课程的订单编号(任何一个课程的订单编号 ...

  9. 【宫水三叶的刷题日记】961. 在长度 2N 的数组中找出重复 N 次的元素

    题目描述 这是 LeetCode 上的 961. 在长度 2N 的数组中找出重复 N 次的元素 ,难度为 简单. Tag : 「模拟」.「计数」.「构造」.「哈希表」 给你一个整数数组 nums ,该 ...

最新文章

  1. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...
  2. “AI就是统计学”?阿里AI负责人金榕逐条驳诺奖得主萨金特
  3. linux rm 删除所有文件,linux无需rm就可快速删除大量文件
  4. 快速排序pascal程序
  5. php访问mysql函数吗,PHP访问MySQL数据库函数简介
  6. python全栈自动化测试工程师第11期柠檬班vip_因为Python,班主任最近都开始化妆了!...
  7. Sentinel卫星数据
  8. 网络安全-渗透测试前置知识
  9. D365 ERP流程笔记
  10. JAVA整合无忧代理IP做数据采集的DEMO
  11. Linux sublime设置中文,Sublime Text 3 设置为Ubuntu 14.04默认编辑器并支持中文
  12. C# 判断是否是节假日
  13. STC12C5A60S2A/D转换
  14. Halcon中关于角度计算和测量拟合的算子详解
  15. c语言实现求一个矩阵特征值和特征向量
  16. android图片:多选相册的实现
  17. 《C++程序设计》第十章总结
  18. 行业标准 | 证券期货业信息系统运维管理规范 JR/T 0099—2012
  19. matlab-粒子群源码优化模糊隶属度函数值
  20. 华为手机如何升级鸿蒙系统_华为鸿蒙系统怎么升级?升级鸿蒙系统步骤[多图]...

热门文章

  1. K8S中iptables和ipvs区别
  2. Pandas+Seaborn+Plotly:联手探索苹果AppStore
  3. 趁着快递还能发,赶紧把迪士尼礼盒带回家 | 钛空舱
  4. 关于获取当前时间出现1970年问题的解决
  5. 来自日本的品质传承 工机控股发布新品牌HiKOKI战略
  6. Tomcat介绍...
  7. CDH集成了Kerberos后写入数据到HBase遇到的几个问题
  8. Isometric Tile
  9. 【图形图像处理】之位图图像和矢量图形有何区别?
  10. 自学B站小甲鱼数据结构课程-C语言实现基础数据结构-栈-的例子