欢迎来到天天文库
浏览记录
ID:28572891
大小:45.03 KB
页数:15页
时间:2018-12-11
《百度校园招聘历年笔试题.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、2009百度笔试题Zz一、编程题(30分)输入:N(整数)输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节文件格式如下:字符串\t数字说明:每行为1条记录;字符串中不含有\t。数字描述的是该字符串的出现概率,小于等于100的整数。多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;如果文件格式错误,程序也退出。要求:编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机地输出字符串,输出N条记录例如:输入文件A.txtabc\t20a\t30de\t50输入为:10即abc有20%的概率输
2、出,a有30%的概率输出,de有50%的概率输出,输出10条记录以下为一次输出的结果,多次输出的结果可能不相同。abcadedeabcdeadeade二、算法题(35分)题目描述:设有n个正整数,将它们联接成一排,组成一个最小的多位整数。程序输入:n个数程序输出:联接成的多位数例如:n=2时,2个整数32,321连接成的最小整数为:32132,n=4时,4个整数55,31,312,33联接成的最小整数为:312313355[题目要求]1.给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算法。2.给出算法的时间空间复杂度。3.证明你的算法。(非常重要
3、)三、系统设计题(35分)在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概念:1、用户:在这个系统中,每个用户用一个递增的unsignedint来表示userid(简写为uid);则uid的范围是从1到1000万的正整数。2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以被解除3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发表的文章;每篇文章通过一个blogid表示。4、feed:我们希望,每个用户可以看到他
4、所有好友的活动列表,在这个简化的系统中就是所有好友的文章更新列表。5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百万量级。题目:请在以上限制条件下,设计一个高效的feed访问系统。要求:1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed;feed的展现按照时间倒排序,最新的在最前面2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友feed都是未被删除的3、尽可能高效2010百度校园招聘笔试题一、简答题1.简述树的深度优先遍历及广度优先遍历及其非递归实现的特点;2.找出以下程
5、序中的bug:#include#includestructRecord{inta;intb;};intcreate(structRecord*p,intnum){p=newstructRecord[num];if(!p)return-1;elsereturn0;}intTest(){structRecord*p=NULL;inti;intnum;printf("0x%08x",p);scanf("Inputrecordnum:%d",&num);if(create(p,num)<0)return-1;printf("0x%0
6、8x",p);for(i=0;i#includestructRecord{inta;intb;};intcreate(structRecord*&p,intnum){p=NULL;p=newstructRecord[num];if(!p)return-1;elsereturn0;}intTest(){structRecord*p=NULL;inti;int
7、num;printf("0x%08x",p);printf("Inputrecordnum:");scanf("%d",&num);if(create(p,num)<0)return-1;printf("0x%08x",p);for(i=0;i
此文档下载收益归作者所有