百度笔试题(共10篇)
感觉他们挺重视字符串的,四个都跟字符串有关还有一个跟搜索引擎有点关系
1.实现 void delete_char(char * str, char ch);
把str中所有的ch删掉
2.把字符串S中所有A子串换成B,这个没给函数原型
我直接#i nclude
3.搜索引擎的日志要记录所有查询串,有一千万条查询,不重复的不超过三百万
要统计最热门的10条查询串. 内存<1G. 字符串长 0-255
(1) 主要解决思路 //具体用词和原题不大一样
(2) 算法及其复杂度分析
4.有字典,设计一个英文拼写纠正算法 (1) 思想 (2) 算法及复杂度 (3) 改进
5. { aaa, bb, ccc, dd }, { bbb, ff }, { gg } 等一些字符串的集合
要求把交集不为空的`集合并起来,如上例会得到 { aaa, bb, ccc, dd, ff }, {gg}
(1) 思想 (2) 算法及复杂度 (3) 改进
其中改进叫“开放性问题”,
不过我觉得有些ft的是既然想到改进了为什么算法里不写进去?
4还好办,可以说再提供一些构词法及词组信息.
5输入上又没什么好动的.我只好在算法实现里写得简单点然后后面多说
篇2:百度笔试题及答案
1、vsftpd配置本地用户传输速率的参数( )
A:anon_max_rate
B:user_max_rate
C: max_user
D: local_max_rate
答案:D
解析:vsftpd 是一个在类UNIX 操作系统上运行的FTP服务器,它是一个完全免费的、开放源代码的ftp服务器软件。vsftp支持很多其他的 FTP 服务器所不支持的特征,比如:高安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
vsftpd配置参数中:
local_max_rate本地用户的传输速率限制,单位为bytes/second,如果是0 为不限制。
anon_max_rate匿名用户的传输速率限制,单位为bytes/second,如果是0 则不限制。
2、软件项目存储于/ftproot,允许apache用户修改所有程序,设置访问权限的指令( )
A:chmod apache -R /ftproot
B: chgrp apache /frproot
C: chown apache /ftproot
D: chmod apache /ftproot
答案:A
解析:B选项的chgrp命令是变更文件或目录所属群组。C选项的chown将文件的拥有者改为指定的用户或组。A、D选项的chmod 修改文件和文件夹读写执行属性;-R的作用是:可递归遍历子目录,把修改应到目录下所有文件和子目录。
3、设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A:7
B:5
C:8
D:6
答案:B
解析:在一个无向图G中,若从顶点Vi到顶点Vj有路径相连,则称Vi和Vj是连通的。连通图是指任意两个结点之间都有一个路径相连。6个节点的无向图,至少要5个边才能确保是任意两个节点之间都有路径相连。下图是一种可能的连接方式:
4、关于Hadoop系统的作业任务调度等问题,以下描述错误的是( )
A:JobTracker是一个master服务,软件启动之后JobTracker接受Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失效的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。
B:JobClient会在用户端通过JobClient类对Job配置参数、打包成jar文件存储到hdfs,并把路径提交到JobTracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask)
C:Nagios不可以监控Hadoop集群,因为它不提供Hadoop支持。
D:HDFS默认Block Size为32M
答案:CD
解析:在Hadoop中,作业是使用Job对象来抽象的。JobClient负责向JobTrack提交Job:包括申请Job的ID、配置Job的运行环境、检查Job的输出配置、对Job的输入数据进行切分生成Job的目录以及相应文件(如jar、xml等)。即JobClient会在用户端通过JobClient类将配置好参数的Job打包成jar文件存储到hdfs,并把路径提交到JobTracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask)并将它们分发到各个TaskTracker服务中去执行。
JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。
Nagios是一个可运行在Linux/Unix平台之上的开源监视系统,可以用来监视系统运行状态和网络信息。Nagios可以监视所指定的本地或远程主机以及服务,同时提供异常通知功能。Nagios可以用来监控Hadoop集群,快速定位出现问题的机器。
HDFS的块大小由dfs.block.size参数决定,默认是67108864,即64M。
5、Fisher线性判别函数的求解过程是将M维特征矢量投影在( )中进行求解。
A:M-1维空间
B:一维空间
C:三维空间
D:二维空间
答案:B
解析:Fisher线性判别函数是将多维空间中的特征矢量投影到一条直线上,也就是把维数压缩到一维。寻找这条最优直线的准则是Fisher准则:两类样本在一维空间的投影满足类内尽可能密集,类间尽可能分开,也就是投影后两类样本均值之差尽可能大,类内部方差尽可能小。一般而言,对于数据分布近似高斯分布的情况,Fisher线性判别准则能够得到很好的分类效果。
6、采用开放定址法处理散列表的冲突时,其平均查找长度( )
A:高于二分查找
B:高于链接法处理冲突
C:低于二分查找
D:低于链接法处理冲突
答案:B
解析:散列表(哈希表)中处理冲突的方法有开放定址(Open Addressing)法和拉链(Chaining)法等。开放定址法是指一旦发生了冲突,就去寻找下一个空的散列地址。按照探查方法不同,可将开放定址法区分为线性探查法、二次探查法、双重散列法等。拉链法解决冲突的做法是将所有关键字为同义词的结点链接在同一个单链表中。拉链法处理冲突简单,且无堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短。
7、并发操作会带来哪些数据不一致性( )
A:丢失修改、脏读、死锁
B:不可重复读、脏读、死锁
C:不可修改、不可重复读、脏读、死锁
D:丢失修改、不可重复读、脏读
答案:D
解析:并发操作指的是多用户或多事务同时对同一数据进行操作。
当两个或多个事务选择同一数据,并且基于最初选定的值修改该数据时,会发生丢失修改问题。每个事务都不知道其它事务的存在,最后的更新将重写由其它事务所做的更新,这将导致修改丢失。
当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据。
一个事务重新读取前面读取过的数据,发现该数据已经被另一个已提交的事务修改过。即事务1读取某一数据后,事务2对其做了修改,当事务1再次读数据时,得到的与3:百度笔试题回顾
百度笔试题回顾
4:百度软件笔试题
百度软件笔试题
一、选择题:15分 共10题
1. 一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有____个零元素,
A.e B.2e C.n2-e D.n2-2e
2. ____是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。
A.继承(Inhertance) B.模板(Template)
C.对象的自身引用(Self-Reference) D.动态绑定(Dynamic Binding)
3. 应用层DNS协议主要用于实现 网络服务功能.
A. IP地址到网络设备名字的映射 B. IP地址到网络硬件地址的映射
C. 网络设备名字到IP地址的映射 D. 网络硬件地址到IP地址的映射
4. linux默认情况下,一个进程最多能打开多少文件?
A.64 B. 128 C. 512 D. 1024
5. 下面结构体
struct s1 {
char ch, *ptr;
union {
short a, b;
unsigned int c:2, d:1;
}
struct s1 *next;
};
的大小是_____:
A. 12字节 B.16字节 C.20字节 D. 24字节
6. 任何一个基于“比较”的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为____。
A.10 B.11 C.21 D.36
7. 以下不是进程间通讯的是___
A 共享内存 B 信号量 C线程局部存储 D 消息队列
8. 下面程序,求count的值
int func(x)
{
int count= 0;
x=9999;
while(x)
{
Count ;
x = x&(x-1);
}
return count;
}
A 8; B 10; C 5; D 1
9. 使用malloc系统调用分配的内存是在____ 上分配的?
A 栈; B bss; C 物理内存; D 堆
10. 最坏情况下,合并两个大小为n的'已排序数组所需要的比较次数_____
A.2n B.2n-1 C.2n 1 D.2n-2
二、简答题:20分,共3题
1. (5分)下面这段代码是把中英文混合字符串(汉字用两个字节表示,特点是5:百度招聘笔试题
百度校园招聘笔试题目分享:
1、找到满足条件的数组
给定函数d(n)=n n的各位之和,n为正整数,如d(78)=78 7 8=93,这样这个函数可以看成一个生成器,如93可以看成由78生成。
定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出1至10000里的所有符合数A定义的数。
回答:
申请一个长度为10000的bool数组,每个元素代表对应的值是否可以有其它数生成。开始时将数组中的值都初始化为false。
由于大于10000的数的生成数必定大于10000,所以我们只需遍历1到10000中的数,计算生成数,并将bool数组中对应的值设置为true,表示这个数可以有其它数生成。
最后bool数组中值为false的位置对应的整数就是不能由其它数生成的。
2、实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。
例子:
func(7) = 4,可以证明最少需要4次运算
n = 7
n-1 6
n/2 3
n-1 2
n/2
要求:实现函数(实现尽可能高效) int func(unsign int n);n为输入,返回最小的运算次数。给出思路(文字描述),完成代码,并分析你算法的时间复杂度。
答:
假设n表示成二进制有x bit,可以看出计算复杂度为O(2^x),也就是O(n)。
将n转换到二进制空间来看(比如7为111,6为110):
- 如果最后一位是0,则对应于偶数,直接进行除2操作。
- 如果最后一位是1,情况则有些复杂。
**如果最后几位是???01,则有可能为???001,???1111101。在6:百度商业应用笔试题
百度商业应用笔试题
1. 题面:1,-6,-9,0,45,198,
问题:请补充括号中的数字,并说明分析过程,提示,正确答案是以下数字中的某一个
:9,18,24,39,36,48,45,52,58,64,72,98
请说出推算7:百度产品经理笔试题
1.请分别给出世界杯开赛前、开赛期间、开赛后,“世界杯”这个关键词下的用户主需求,以及网页搜索结果展现页面。(50分)(如果对世界杯不熟悉,可用一个热门电影代替)
2.请设计一款百度地图和大数据相结合的产品,产品形态不限。(50分)注:需要说清楚包括但不限于一下内容:产品的功能,产品的主要界面框架图,产品的价值。产品形态可以是仪的独立产品,或一个承载于百度地图产品的模块等。
篇8:百度产品经理笔试题
1.从用户需求角度出发,设计“中国好声音”query的搜索结果页面,并详细说明你的设计思路。【50分】
2.一个社区有A、B……Z共26个社区,每个社区有100位居民,每个居民有独一无二的身份编码,如:
A社区:A001、A002……A100
B社区:B001、B002……B100
……
Z社区:Z001、Z002……Z100
在距离社区5个公交站远处有一个 百度广场,提供吃喝玩乐等一条龙服务。现百度广场拟开展促销活动,如“发放积分券”等。对这个社区居民一个月来的出行活动进行调查得到以下【一种】出行信息:
①出门→②坐公交车→③在百度广场逛街→④在百度广场吃饭→⑤在百度广场唱歌→⑥在百度广场看电影→⑦……【后面的我忘记了抱歉】
其中:② 该社区公交站只有888路公交直达百度广场,还有其他公交路,、路等到达别的娱乐休闲场所,顾客可能乘坐888路到百度广场,也可能乘坐其他路线去别处;③④⑤⑥ 四项消费的消费金额都有记录可以查询;
④ 顾客常去的餐馆有所记录;
⑤ 顾客常点的歌曲有所记录;
⑥ 顾客常看的电影及类型有所记录;
① 顾客出门后不一定要搭公交车,可以出门在社区下个棋再回家;
③⑥④ 顾客进行各项活动的顺序不一定按上述顺序,且也不一定逛街、吃饭、唱歌和看电影都进行,可以逛街、看电影、吃饭然后直接回家。
问:1.如何确定单个居民的 生活质量(还是其他一个质量?)高低? 如何确定促销价值最大的居民群体?【20分】
篇9:百度产品经理笔试题
1、列举一款你常用的移动APP,并分析他的最核心功能、满足的需求、超预期的功能以及竞争优势和发展趋势
2、如果让你设计一款相册APP,代替系统自带的相册功能,你会怎么设计,列举主要功能。分析原生相册的不足,用户需求痛点,画出相关页面的产品原型线框图(1-3个页面即可)。并分析为什么用户要使用你这款产品
0:百度招聘笔试题及答案
百度招聘笔试题及答案
编程:
用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回,
2编程:
用C语言实现函数void*memmove(void*dest,constvoid*src,size_tn)。memmove
函数的功能是拷贝src所指的内存内容前n个字节
到dest所指的地址上。
3英文拼写纠错:
在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包
含了正确英文单词的词典,请你设计一个拼写纠错
的程序。
(1)请描述你解决这个问题的思路;
(2)请给出主要的'处理流程,算法,以及算法的复杂度;
(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。
4寻找热门查询:
搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串
的长度为1-255字节。假设目前有一千万个记录,
这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个
。一个查询串的重复度越高,说明查询它的用户越多,
也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。
(1)请描述你解决这个问题的思路;
(2)请给出主要的处理流程,算法,以及算法的复杂度。
5集合合并:
给定一个字符串的集合,格式如:
{aaabbbccc},{bbbddd},{eeefff},{ggg},{dddhhh}
要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应
输出
{aaabbbcccdddhhh},{eeefff},{ggg}
(1)请描述你解决这个问题的思路;
(2)请给出主要的处理流程,算法,以及算法的复杂度
(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。
////////////////////////////////
1题
char*revert(char*str)
{
intn=strlen(str);
inti=0;
charc;
for(i=0;i{
c=str;
str=str[n-i];
str[n-i]=c;
}
returnstr;
}
///////////////////////////////////
2题
void*memmove(void*dest,constvoid*src,size_tn)
{
assert((dest!=0)&&(src!=0));
char*temp=(char*)dest;
char*ss=(char*)src;
inti=0;
for(;i{
*temp =*ss ;
}
returntemp;
}
/////////////////////////////////////////////////
3题
(1)思路:
字典以字母键树组织,在用户输入同时匹配
(2)
流程:
每输入一个字母:
沿字典树向下一层,
a)若可以顺利下行,则继续至结束,给出结果;
b)若该处不能匹配,纠错处理,给出拼写建议,继续至a);
算法:
1.在字典中查找单词
字典采用27叉树组织,每个节点对应一个字母,查找就是一个字母
一个字母匹配.算法时间就是单词的长度k.
2.纠错算法
情况:当输入的最后一个字母不能匹配时就提示出错,简化出错处理,动态提示
可能处理方法:
(a)当前字母前缺少了一个字母:搜索树上两层到当前的匹配作为建议;
(b)当前字母拼写错误:当前字母的键盘相邻作为提示;(只是简单的描述,可
以有更多的)
根据分析字典特征和用户单词已输入部分选择(a),(b)处理
复杂性分析:影响算法的效率主要是字典的实现与纠错处理
(a)字典的实现已有成熟的算法,改进不大,也不会成为瓶颈;
(b)纠错策略要简单有效,如前述情况,是线性复杂度;
(3)改进
策略选择最是重要,可以采用统计学习的方法改进,