Google

Archives

百度的一道笔试题

是百度的一道题

寻找热门查询: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串 的长度为1-255字节。假设目前有一千万个记录, 这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个 。一个查询串的重复度越高,说明查询它的用户越多, 也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。 (1)请描述你解决这个问题的思路; (2)请给出主要的处理流程,算法,以及算法的复杂度。

求职应聘:百度网上笔试题

2006年04月24日 15:31:00

求职应聘:百度网上笔试题

  1 编程:

  用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。

  2 编程:

  用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove

  函数的功能是拷贝src所指的内存内容前n个字节

  到dest所指的地址上。

  3 英文拼写纠错:

  在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包

  含了正确英文单词的词典,请你设计一个拼写纠错的程序。

  (1)请描述你解决这个问题的思路;

  (2)请给出主要的处理流程,算法,以及算法的复杂度;

  (3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。

  4 寻找热门查询:

  搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串

  的长度为1-255字节。假设目前有一千万个记录,

  这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个

  。一个查询串的重复度越高,说明查询它的用户越多,

  也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。

  (1)请描述你解决这个问题的思路;

  (2)请给出主要的处理流程,算法,以及算法的复杂度。

  5 集合合并:

  给定一个字符串的集合,格式如:

  {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}

  要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应

  输出

  {aaa bbb ccc ddd hhh},{eee fff}, {ggg}

  (1)请描述你解决这个问题的思路;

  (2)请给出主要的处理流程,算法,以及算法的复杂度

  (3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=675148

Baidu 考试题

请用脚本语言 Shell完成如下功能:
给定URL 列表统计每个站点出现的 URL数

请用脚本语言 Shell完成如下功能,要求实现越简单越好:
1/ 给定URL 列表统计每个站点出现的 URL数
2/ 从一批url中grep出首页
3/ 从一批url中grep出目录页
4/ 从一批url中grep出日期页面
5/ 求两文件的交集、并集、差集

注:(1)必须使用bash script;(2)可以内嵌awk。

提供一个文本文件1(all.site),每行两列,格式为 site urlnum。

提供一个文本文件2(all.domain),每行一列,格式为 每行一个主域名

定义:主域名,如下:

news.sina.com.cn 主域为sina.com.cn

www.5yiso.cn   主域为5yiso.cn

apple.club.sohu.com 主域为sohu.com

要求计算:

(1)文件2中每个主域上在文件1中存在的站点数(文件1中站点不能保证无重复)和url数量总和

(2)站点上url数量超过所在主域上站点平均url数量的站点集合

如文件1为

hshlkm.yp.sina.net 234

www.sina.net 220

www.combuilders.org 3

cmcy.hljeca.com 1

www.gafffe.com 2

文件2为

sina.net

combuilders.org

则计算结果1为:

sina.net 2 454

combuilders.org 1 3

数据位置:zixia:/home/work/TraningData/statdomain/

*********************************************************************
*********************************************************************

comm 属于 diff 家族的命令, 相当于寻找两个字符串的最长公共子串. 在寻找前, 要对两个文件先排序. 然后diff内部哈希把一行字符变成一个整数, 再使用寻找最长公共子串的动态规划. 因此, 比较一个 m 长文件和一个 n 长文件的复杂度还是比较大. 读者有兴趣的可以阅读这篇论文[PS]. 其实我自己以前也用Comm, 但是不知道为什么, comm 求集合差集的效果不好. 即使排好了序, 有很多文件之间算差集还是做不对.

找两个文件的交集和差集是很普通的一个事情. 举个简单的例子, 我每周都去Google 音乐趋势抓歌曲名, 抓完了以后, 我要知道哪些是我需要下的新歌 (因为有的歌可能在榜好几个星期, [...]

mp3搜索引擎题目讨论–招聘笔试

mp3搜索引擎题目讨论

2007-12-20 11:48

题目是:“假设一个mp3搜索引擎收录了2^24首歌曲,并记录了可收听这些歌曲的2^30条URL,但每首歌的URL不超过2^10个。系统会定期检查这些URL,如果一个URL不可用则不出现在搜索结果中。现在歌曲名和URL分别通过整型的SONG_ID和URL_ID唯一确定。对该系统有如下需求:1) 通过SONG_ID搜索一首歌的URL_ID,给出URL_ID计数和列表2) 给定一个SONG_ID,为其添加一个新的URL_ID3) 添加一个新的SONG_ID4) 给定一个URL_ID,将其置为不可用

限制条件:内存占用不超过1G,单个文件大小不超过2G,一个目录下的文件数不超过128个。为获得最佳性能,请说明设计的数据结构、搜索算法,以及资源消耗。如果系统数据量扩大,该如何多机分布处理?

求职应聘:百度网上笔试题

1 编程:

  用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。

  2 编程:

  用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove

  函数的功能是拷贝src所指的内存内容前n个字节

  到dest所指的地址上。

  3 英文拼写纠错:

  在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包

  含了正确英文单词的词典,请你设计一个拼写纠错的程序。

  (1)请描述你解决这个问题的思路;

  (2)请给出主要的处理流程,算法,以及算法的复杂度;

  (3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。

  4 寻找热门查询:

  搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串

  的长度为1-255字节。假设目前有一千万个记录,

  这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个

  。一个查询串的重复度越高,说明查询它的用户越多,

  也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。

  (1)请描述你解决这个问题的思路;

  (2)请给出主要的处理流程,算法,以及算法的复杂度。

  5 集合合并:

  给定一个字符串的集合,格式如:

  {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}

  要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应

  输出

  {aaa bbb ccc ddd hhh},{eee fff}, {ggg}

  (1)请描述你解决这个问题的思路;

  (2)请给出主要的处理流程,算法,以及算法的复杂度

  (3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。