腾讯php程序员面试题目及答案
设计任务:
1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的'东东
要求如下:
1)要求每个qq号码(假设此QQ号码在UNIT32 内可以表示)10分钟这内只能投5票。
2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。
说明:
1)无需写代码,只需要图跟文字即可。
2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。
3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。
4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分.
解答:
核心问题:如何统计10分钟之内投了5票?
首先:以秒为键切分数据集,10*60=600个时间戳桶,并添加一个Forbid令牌桶
然后:每个数据集内,以qq号码为键,vote次数为值
OK,已经成功转换为key-value方式存储,2000万的日投票,除以86400秒,并发231.48rps,使用memcache能够轻松胜任。
数据集ID:201006072134
【QQ号码:Vote次数】
201006072134 | 201006072135 | 201006072136
【12345:3】 | 【12345:3】 | 【12345:3】
【88888:2】 | 【88888:3】 | 【88888:3】
把下一秒钟不能投票的同学 生成一个令牌桶Forbid。
―――――-
Forbid令牌桶
【12345】
【55555】
【66666】
【77777】
【99999】
―――――-
if(in_array($uid,$not_vote))
{
$flag = ‘不能投票’;
}
else
{
$flag = ‘可以投票’;
// 新时间戳桶
}
定时任务
1、unset(10分钟前的时间戳桶)
2、重新生成令牌桶
-
北京的住房公积金提取管理
公积金可以取出来吗?这个得分地区的,不知道你是在哪里。我这有北京的住房公积金提取管理文档。给你截了一段提取流程。第五章提取程序第二十七条住房公积金提取,一般由所在单位代为办理。第二十八条职工符合提取住房公积金条件的`,应提供相应证明材料,所在单位予以...
-
求职面试自我介绍(档案管理专业)
这是一篇档案管理专业毕业生求职面试自我介绍。时间如白驹过隙,四年的学习结束了,在学到了专业知识之后,现在我满怀希望投入到人生的下一个阶段。我是XXXX大学档案学专业的即将毕业的学生,四年的校园生活是我人生的一大转折点。在校园生涯和社会实践生活中我不断...
-
去外企求职面试的成功砝码
去外企求职面试前首先要了解外国文化。外国人的文化习惯和我们中国人有着相当大的差异,如果你将要去一家美国、或德国、或日本的公司面试,而你却对这些差异一无所知的话,这无疑会大大减低你的成功率。以下列举了一去外企求职面试前首先要了解外国文化。外国人的文...
-
面试指南-面试基本方法(三)
五、演讲法面试中要求考生演讲同样是一种较常见的考察方法。这是对面谈法和小组讨论法中考生表现的一个更集中、更直接的测评。这时,没有谈话的对方,没有考官提问,只有听众。考生是讲台上惟一的演员,更可以充分、自主地表现自己的气质、风度、口头表达能力、见解和...