查看: 1750| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

请教大神一道parallel progeamming的题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
请教各位大神一道parallel programming验证电话号码的题目。题目是这样的,

首先你会拿到一个大小为100K的输入文件,文件里每一行存放着一个电话号码。电话号码是美国的电话号码。从这些电话号码中,你将需要:1)确定的电话号码是一个有效的电话号码(即408-555-1234不是一个有效的电话号码,这里不是有效的原因是该电话号码未被任何人使用)
2)你需要确定这个电话号码是不是一个手机电话号码。
3)你需要非常快速地处理这个100K的数据集(很快就会有一个新的100K的数据集紧接着需要处理)。因此必须用并行计算(多线程)实现代码。
4)函数需要将所有有效的手机号码保存在一个set,并且返回这个set。
5)代码必须用Java编写。



第一个要求可以用libphonenumber这个库里的函数来判断,第二个要求可以调用Twilio的SDK里面的方法来判断。库太大,传不上来,那位大神需要可以给小弟发邮件。ancenxixi@gmail.com


我自己实现的代码主要是多线程这里不知道该怎么写。求大神指导! 多谢多谢!



上一篇:Groupon面试题
下一篇:刷题新人求助一道数据结构里面双向链表的题。。。
🔗
luochen01 2016-3-22 14:26:56 | 只看该作者
全局:
应该可以用MapReduce是paradigm来实现
Map的时候用于检查每个电话号码的合法性,每个Mapper得到一个合法的set。
Reduce的时候把所有的合法set合并在一起。
不过也未必严格按照MapReduce的过程,但感觉至少应该有 分组 - 合并 的过程。
回复

使用道具 举报

🔗
 楼主| ancen 2016-3-22 16:08:33 | 只看该作者
全局:
luochen01 发表于 2016-3-22 14:26
应该可以用MapReduce是paradigm来实现
Map的时候用于检查每个电话号码的合法性,每个Mapper得到一个合法的 ...

多谢回答!我也想过mapreduce,但转念一想这是一道面试题,我感觉用mapreduce是不是有点太猛了?有木有用多线程实现的解法呀? 多谢!
回复

使用道具 举报

🔗
luochen01 2016-3-22 16:16:40 | 只看该作者
全局:
ancen 发表于 2016-3-22 16:08
多谢回答!我也想过mapreduce,但转念一想这是一道面试题,我感觉用mapreduce是不是有点太猛了?有木有用 ...

感觉可以用多线程模拟MapReduce的执行过程,就相当于Hadoop里的LocalJobRunner,也是单机多线程上跑MapReduce任务。不过其实中间的Shuffle过程是可以省掉的,而且MapReduce这个模型其实也算是挺简单的了。。。
回复

使用道具 举报

🔗
luochen01 2016-3-22 16:23:03 | 只看该作者
全局:
ancen 发表于 2016-3-22 16:08
多谢回答!我也想过mapreduce,但转念一想这是一道面试题,我感觉用mapreduce是不是有点太猛了?有木有用 ...

不过应该也可以多个线程共享一个synchronized set,并且所有的线程同时往这个里面加电话号码。
但是这样的话set的add操作就必须是同步的了,效率上可能还不如MapReduce的方法效率高……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表