- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
百度笔试题
一、编程题(30 分) 输入:N(整数)
输入:数据文件 A.txt,不超过 6 条记录,字符串长度不超过 15 个字节文件格式如下:
字符串\\t 数字\\n
说明:
每行为 1 条记录;字符串中不含有\\t。
数字描述的是该字符串的出现概率,小于等于 100 的整数。
多条记录的出现概率之和为 100,如果 A.txt 不满足该条件,程序则退出; 如果文件格式错误,程序也退出。
要求:
编写一个程序,输入为 N(正整数),读入文件 A.txt,按照字符串出现概率随机地输出字符串,输出 N 条记录
例如:
输入文件 A.txt abc\\t20 a\\t30
de\\t50
输入为:10
即 abc 有 20%的概率输出,a 有 30%的概率输出,de 有 50%的概率输出,输出 10 条记
录
以下为一次输出的结果,多次输出的结果可能不相同。
abc a de de abc de a de a de
二、算法题(35 分) 题目描述:
设有 n 个正整数,将它们联接成一排,组成一个最小的多位整数。
程序输入:n 个数
程序输出:联接成的多位数
例如:
n=2 时,2 个整数 32,321 连接成的最小整数为:32132,
n=4 时,4 个整数 55,31,312, 33 联接成的最小整数为:312313355
[题目要求]
给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算
法。
给出算法的时间空间复杂度。
证明你的算法。(非常重要)
三、系统设计题(35 分)
在一个有 1000 万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概念:
1、用户:在这个系统中,每个用户用一个递增的 unsigned int 来表示 user id(简写为 uid);则 uid
的范围是从 1 到 1000 万的正整数。
2、好友:用户之间可以形成好友关系,好友是双向的;比如说 uid 为 3 和 uid 为 4 的两个用户可以互为好友。每个用户好友的上限是 500 个;用户之间的好友关系可以被解除
3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发表的文章;每篇文章通过一个 blogid 表示。
4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系统中就是所有好友的文章更新列表。
5、访问量要求:所有 feed 访问量每天在 1 亿量级;所有的 blogid 增加量每天在百万量级。题目:请在以上限制条件下,设计一个高效的 feed 访问系统。
要求:
1、能够尽快的返回每个用户的好友 feed 列表,每个用户可以最多保留 1000 条 feed;feed 的展现按照时间倒排序,最新的在最前面
2、用户删除某篇文章后,被推出去的 feed 需要及时消失。即每个用户看到的好友 feed 都是未被删除的
3、尽可能高效
2010 百度校园招聘笔试题
一、简答题
简述树的深度优先遍历及广度优先遍历及其非递归实现的特点;
找出以下程序中的 bug:
#include stdio.h #include stdlib.h struct Record{
int a; int b;
};
int create(struct Record *p, int num)
{
p = new struct Record[num];
if (!p) return -1; else return 0;
}
int Test()
{
struct Record *p = NULL; int i;
int num; printf(0x%08x\n, p);
scanf(Input record num:%d, num); if (create(p, num) 0)
return -1; printf(0x%08x\n, p);
for (i = 0; i num; i++) { p[i].a = 0;
p[i].b = 0;
}
return 0;
}
int main(void)
{
Test();
getchar(); return 0;
}
#include stdio.h #include stdlib.h struct Record
{
int a; int b;
};
int create(struct Record *p, int num)
{
p=NULL;
p = new struct Record[num]; if (!p)
return -1;
else
}
return 0;
int Test()
{
struct Record *p = NULL; int i;
int num; printf(0x%08x\n, p);
printf(Input r
原创力文档


文档评论(0)