<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Information Retrieval Blog &#187; 笔试题</title>
	<atom:link href="http://blog.zye.me/tag/%e7%ac%94%e8%af%95%e9%a2%98/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.zye.me</link>
	<description>REAL TIME DATA PROCESSING, DISTRIBUTED COMPUTING, PATTERN DISCOVERY</description>
	<lastBuildDate>Wed, 08 Feb 2012 17:33:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>百度的一道笔试题</title>
		<link>http://blog.zye.me/2011/07/20532.html</link>
		<comments>http://blog.zye.me/2011/07/20532.html#comments</comments>
		<pubDate>Sun, 24 Jul 2011 02:27:57 +0000</pubDate>
		<dc:creator>yezheng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[百度]]></category>
		<category><![CDATA[笔试题]]></category>

		<guid isPermaLink="false">http://www.5yiso.cn/2008/03/20532.html</guid>
		<description><![CDATA[是百度的一道题 寻找热门查询： 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来，每个查询串 的长度为1-255字节。假设目前有一千万个记录， 这些查询串的重复度比较高，虽然总数是1千万，但如果除去重复后，不超过3百万个 。一个查询串的重复度越高，说明查询它的用户越多， 也就是越热门。请你统计最热门的10个查询串，要求使用的内存不能超过1G。 （1）请描述你解决这个问题的思路； （2）请给出主要的处理流程，算法，以及算法的复杂度。]]></description>
			<content:encoded><![CDATA[<p>是百度的一道题</p>
<p>寻找热门查询： <br />搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来，每个查询串 <br />的长度为1-255字节。假设目前有一千万个记录， <br />这些查询串的重复度比较高，虽然总数是1千万，但如果除去重复后，不超过3百万个 <br />。一个查询串的重复度越高，说明查询它的用户越多， <br />也就是越热门。请你统计最热门的10个查询串，要求使用的内存不能超过1G。 <br />（1）请描述你解决这个问题的思路； <br />（2）请给出主要的处理流程，算法，以及算法的复杂度。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zye.me/2011/07/20532.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Baidu 考试题</title>
		<link>http://blog.zye.me/2011/07/15416.html</link>
		<comments>http://blog.zye.me/2011/07/15416.html#comments</comments>
		<pubDate>Tue, 19 Jul 2011 02:27:26 +0000</pubDate>
		<dc:creator>yezheng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Baidu]]></category>
		<category><![CDATA[笔试题]]></category>

		<guid isPermaLink="false">http://www.5yiso.cn/2008/03/15416.html</guid>
		<description><![CDATA[请用脚本语言 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 <a href='http://blog.zye.me/2011/07/15416.html'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>请用脚本语言 Shell完成如下功能：<br />
给定URL 列表统计每个站点出现的 URL数</p>
<p>请用脚本语言 Shell完成如下功能，要求实现越简单越好：<br />
1/ 给定URL 列表统计每个站点出现的 URL数<br />
2/ 从一批url中grep出首页<br />
3/ 从一批url中grep出目录页<br />
4/ 从一批url中grep出日期页面<br />
5/ 求两文件的交集、并集、差集</p>
<p>注：（1）必须使用bash script；（2）可以内嵌awk。</p>
<p>提供一个文本文件1（all.site），每行两列，格式为 site urlnum。</p>
<p>提供一个文本文件2（all.domain），每行一列，格式为 每行一个主域名</p>
<p>定义：主域名，如下：</p>
<p>news.sina.com.cn 主域为sina.com.cn</p>
<p><a href="http://www.baidu.com">www.5yiso.cn</a>   主域为5yiso.cn</p>
<p>apple.club.sohu.com 主域为sohu.com</p>
<p>要求计算：</p>
<p>（1）文件2中每个主域上在文件1中存在的站点数(文件1中站点不能保证无重复)和url数量总和</p>
<p>（2）站点上url数量超过所在主域上站点平均url数量的站点集合</p>
<p>如文件1为</p>
<p>hshlkm.yp.sina.net 234</p>
<p><a href="http://www.sina.net">www.sina.net</a> 220</p>
<p><a href="http://www.combuilders.org">www.combuilders.org</a> 3</p>
<p>cmcy.hljeca.com 1</p>
<p><a href="http://www.gafffe.com">www.gafffe.com</a> 2</p>
<p>文件2为</p>
<p>sina.net</p>
<p>combuilders.org</p>
<p>则计算结果1为:</p>
<p>sina.net 2 454</p>
<p>combuilders.org 1 3</p>
<p>数据位置：zixia:/home/work/TraningData/statdomain/</p>
<p>*********************************************************************<br />
*********************************************************************</p>
<p>comm 属于 diff 家族的命令, 相当于寻找两个字符串的最长公共子串. 在寻找前, 要对两个文件先排序. 然后diff内部哈希把一行字符变成一个整数, 再使用寻找最长公共子串的动态规划. 因此, 比较一个 m 长文件和一个 n 长文件的复杂度还是比较大. 读者有兴趣的可以阅读这篇论文[PS]. 其实我自己以前也用Comm, 但是不知道为什么, comm 求集合差集的效果不好. 即使排好了序, 有很多文件之间算差集还是做不对.</p>
<p>找两个文件的交集和差集是很普通的一个事情. 举个简单的例子, 我每周都去Google 音乐趋势抓歌曲名, 抓完了以后, 我要知道哪些是我需要下的新歌 (因为有的歌可能在榜好几个星期, 不需要重复下载). 假设我机器上存的歌曲是集合B, 新抓取了集合A. 假设这些集合这都用文件存着, 每行一个歌曲名. 任务就是计算 A-B, 也就是在集合A中而不在集合B 中的那些歌曲. 我长期的使用经验证明, comm 并不能准确的算出差集.</p>
<p>抓耳挠腮了好久, 想: 要是的确有这个需求, 又没这个现成的工具, 那么肯定一行脚本能写出来. 其实只要运用集合论知识一想就知道, 就是在A中把同时在 A和B 中出现的剔除了呗. 因此办法是, 把 两个B 集合和一个 A 文件放到一起成一个大文件(集合), 然后选取这个大集合中唯一的. 那么这个唯一的肯定就是只在A中不在B中的, 仔细想想就知道是对的. 所以, 方法是:</p>
<p>sort B B A | uniq -u</p>
<p>同理, 对称差是:</p>
<p>sort A B | uniq -u</p>
<p>为什么我不喜欢用 comm 呢, 因为comm 是对有序的列表做操作的, 如果对集合, sort 和 uniq 足矣. 可能车大虾说的 join 两个表就是这个了, 不过我觉得, 这个看上去可能更加容易写一点, 毕竟用 comm 的比用 sort 和 uniq 的少一点, 而且, 复杂度也低, 构造也巧妙, 这个多能显示良好的数学和计算机功底啊 <img src='http://blog.zye.me/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Linux 不是玩具, 是提高工作效率的智慧的工具. 我越用越觉得缺少的只是想象力.</p>
<p>Update: Linux 下面解决问题从来就不止一种方法, 今天一个美国同事告诉我另一个方法求差集 A-B:</p>
<p>grep -F -f listb lista -v</p>
<p>那求交集可以用grep -F -f listb lista -v 了，呵呵．</p>
<p>＝＝＝＝＝<br />
我原文当中好像就写了吧：</p>
<p>grep -F -f listb lista -v</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zye.me/2011/07/15416.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>求职应聘:百度网上笔试题</title>
		<link>http://blog.zye.me/2011/06/18586.html</link>
		<comments>http://blog.zye.me/2011/06/18586.html#comments</comments>
		<pubDate>Thu, 02 Jun 2011 02:27:50 +0000</pubDate>
		<dc:creator>yezheng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[百度]]></category>
		<category><![CDATA[笔试题]]></category>

		<guid isPermaLink="false">http://www.5yiso.cn/2008/03/18586.html</guid>
		<description><![CDATA[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)请描述可能的改进(改进的方向如效果，性能等等，这是一个开放问题)。 <a href='http://blog.zye.me/2011/06/18586.html'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>2006年04月24日 15:31:00</p>
<p class="postText">
<dl class="ReadArticle">
<dt>求职应聘:百度网上笔试题</dt>
<dd class="ArticleContent">
<p>　　1 编程：</p>
<p>　　用C语言实现一个revert函数，它的功能是将输入的字符串在原串上倒序后返回。</p>
<p>　　2 编程：</p>
<p>　　用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove</p>
<p>　　函数的功能是拷贝src所指的内存内容前n个字节</p>
<p>　　到dest所指的地址上。</p>
<p>　　3 英文拼写纠错：</p>
<p>　　在用户输入英文单词时，经常发生错误，我们需要对其进行纠错。假设已经有一个包</p>
<p>　　含了正确英文单词的词典，请你设计一个拼写纠错的程序。</p>
<p>　　(1)请描述你解决这个问题的思路；</p>
<p>　　(2)请给出主要的处理流程，算法，以及算法的复杂度；</p>
<p>　　(3)请描述可能的改进(改进的方向如效果，性能等等，这是一个开放问题)。</p>
<p>　　4 寻找热门查询：</p>
<p>　　搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来，每个查询串</p>
<p>　　的长度为1-255字节。假设目前有一千万个记录，</p>
<p>　　这些查询串的重复度比较高，虽然总数是1千万，但如果除去重复后，不超过3百万个</p>
<p>　　。一个查询串的重复度越高，说明查询它的用户越多，</p>
<p>　　也就是越热门。请你统计最热门的10个查询串，要求使用的内存不能超过1G。</p>
<p>　　(1)请描述你解决这个问题的思路；</p>
<p>　　(2)请给出主要的处理流程，算法，以及算法的复杂度。</p>
<p>　　5 集合合并：</p>
<p>　　给定一个字符串的集合，格式如：</p>
<p>　　{aaa bbb ccc}， {bbb ddd}，{eee fff}，{ggg}，{ddd hhh}</p>
<p>　　要求将其中交集不为空的集合合并，要求合并完成后的集合之间无交集，例如上例应</p>
<p>　　输出</p>
<p>　　{aaa bbb ccc ddd hhh}，{eee fff}， {ggg}</p>
<p>　　(1)请描述你解决这个问题的思路；</p>
<p>　　(2)请给出主要的处理流程，算法，以及算法的复杂度</p>
<p>　　(3)请描述可能的改进(改进的方向如效果，性能等等，这是一个开放问题)。</p>
</dd>
</dl>
<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=675148</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zye.me/2011/06/18586.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mp3搜索引擎题目讨论&#8211;招聘笔试</title>
		<link>http://blog.zye.me/2011/05/5148.html</link>
		<comments>http://blog.zye.me/2011/05/5148.html#comments</comments>
		<pubDate>Tue, 17 May 2011 02:28:55 +0000</pubDate>
		<dc:creator>yezheng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[笔试题]]></category>

		<guid isPermaLink="false">http://www.5yiso.cn/2007/12/5148.html</guid>
		<description><![CDATA[mp3搜索引擎题目讨论 2007-12-20 11:48 题目是：&#8220;假设一个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个。为获得最佳性能，请说明设计的数据结构、搜索算法，以及资源消耗。如果系统数据量扩大，该如何多机分布处理？]]></description>
			<content:encoded><![CDATA[<table cellpadding="0" width="100%" align="center" cellspacing="1" border="0">
<tbody>
<tr>
<td class="post_hd">
<h3>mp3搜索引擎题目讨论</h3>
<p><span>2007-12-20 11:48</span></td>
<p><!--// title --></tr>
<tr><!-- content --></p>
<td>
<div class="content">题目是：<br />&#8220;<br />假设一个mp3搜索引擎收录了2^24首歌曲，并记录了可收听这些歌曲的2^30条URL，但每首歌的URL不超过2^10个。系统会定期检查这些URL，如果一个URL不可用则不出现在搜索结果中。现在歌曲名和URL分别通过整型的SONG_ID和URL_ID唯一确定。对该系统有如下需求：<br />1) 通过SONG_ID搜索一首歌的URL_ID，给出URL_ID计数和列表<br />2) 给定一个SONG_ID，为其添加一个新的URL_ID<br />3) 添加一个新的SONG_ID<br />4) 给定一个URL_ID，将其置为不可用</p>
<p>限制条件：内存占用不超过1G，单个文件大小不超过2G，一个目录下的文件数不超过128个。<br />为获得最佳性能，请说明设计的数据结构、搜索算法，以及资源消耗。如果系统数据量扩大，该如何多机分布处理？</div>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.zye.me/2011/05/5148.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>求职应聘:百度网上笔试题</title>
		<link>http://blog.zye.me/2011/04/9249.html</link>
		<comments>http://blog.zye.me/2011/04/9249.html#comments</comments>
		<pubDate>Fri, 29 Apr 2011 14:28:28 +0000</pubDate>
		<dc:creator>yezheng</dc:creator>
				<category><![CDATA[MISC]]></category>
		<category><![CDATA[百度]]></category>
		<category><![CDATA[笔试题]]></category>

		<guid isPermaLink="false">http://www.5yiso.cn/2007/11/9249.html</guid>
		<description><![CDATA[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)请描述可能的改进(改进的方向如效果，性能等等，这是一个开放问题)。]]></description>
			<content:encoded><![CDATA[<div><span style="FONT-FAMILY: Verdana"><font size="2">1 编程：</font></span></div>
<div>
<p>　　用C语言实现一个revert函数，它的功能是将输入的字符串在原串上倒序后返回。</p>
<p>　　2 编程：</p>
<p>　　用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove</p>
<p>　　函数的功能是拷贝src所指的内存内容前n个字节</p>
<p>　　到dest所指的地址上。</p>
<p>　　3 英文拼写纠错：</p>
<p>　　在用户输入英文单词时，经常发生错误，我们需要对其进行纠错。假设已经有一个包</p>
<p>　　含了正确英文单词的词典，请你设计一个拼写纠错的程序。</p>
<p>　　(1)请描述你解决这个问题的思路；</p>
<p>　　(2)请给出主要的处理流程，算法，以及算法的复杂度；</p>
<p>　　(3)请描述可能的改进(改进的方向如效果，性能等等，这是一个开放问题)。</p>
<p>　　4 寻找热门查询：</p>
<p>　　搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来，每个查询串</p>
<p>　　的长度为1-255字节。假设目前有一千万个记录，</p>
<p>　　这些查询串的重复度比较高，虽然总数是1千万，但如果除去重复后，不超过3百万个</p>
<p>　　。一个查询串的重复度越高，说明查询它的用户越多，</p>
<p>　　也就是越热门。请你统计最热门的10个查询串，要求使用的内存不能超过1G。</p>
<p>　　(1)请描述你解决这个问题的思路；</p>
<p>　　(2)请给出主要的处理流程，算法，以及算法的复杂度。</p>
<p>　　5 集合合并：</p>
<p>　　给定一个字符串的集合，格式如：</p>
<p>　　{aaa bbb ccc}， {bbb ddd}，{eee fff}，{ggg}，{ddd hhh}</p>
<p>　　要求将其中交集不为空的集合合并，要求合并完成后的集合之间无交集，例如上例应</p>
<p>　　输出</p>
<p>　　{aaa bbb ccc ddd hhh}，{eee fff}， {ggg}</p>
<p>　　(1)请描述你解决这个问题的思路；</p>
<p>　　(2)请给出主要的处理流程，算法，以及算法的复杂度</p>
<p>　　(3)请描述可能的改进(改进的方向如效果，性能等等，这是一个开放问题)。</p>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.zye.me/2011/04/9249.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

