现在的位置: 首页 > 综合 > 正文

十月百度,阿里巴巴,迅雷搜狗最新面试十一题

2018年10月17日 ⁄ 综合 ⁄ 共 2746字 ⁄ 字号 评论关闭


十月百度,阿里巴巴,迅雷搜狗最新面试十一题

引言

   当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热。而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多思想与设计,细细把玩,思考一番亦能有不少收获。对以下任何一题有任何思路或者问题,欢迎各抒己见,多多讨论,多谢。

最新面试十八题

  1. 十月百度:一个数组保存了N个结构,每个结构保存了一个坐标,结构间的坐标都不相同,请问如何找到指定坐标的结构(除了遍历整个数组,是否有更好的办法)?

     
  2. 百度最新面试题:现在有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来。

     
  3. Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法

    String extractSummary(String description,String[] key words)

    目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出。(不限编程语言)20分。

     
  4. 有N个正实数(注意是实数,大小升序排列)
    x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度(搜狗)。

     
  5. 给你10台机器,每个机器2个cpu,2g内存,现在已知在10亿条记录的数据库里执行一次查询需要5秒,问用什么方法能让90%的查询能在100毫秒以内返回结果(迅雷)。

     
  6. 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?

     
  7. 五笔的编码范围是a
    ~ y的25个字母,从1位到4位的编码,如果我们把五笔的编码按字典序排序,形成一个数组如下:

    a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy

    其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。

    1)编写一个函数,输入是任意一个编码,比如baca,输出这个编码对应的Index;

    2)编写一个函数,输入是任意一个Index,比如12345,输出这个Index对应的编码(腾讯)。

     
  8. 求一个全排列函数:

    如p([1,2,3])输出:

    [123],[132],[213],[231],[321],[323].

     求一个组合函数

    如p([1,2,3])输出:

    [1],[2],[3],[1,2],[2,3],[1,3],[1,2,3]

    这两问可以用伪代码。

     
  9. 有两个十亿数据的表,表是xxID,xx,xx,xx之类的几个项,存的是url之类的,只说是存到硬盘的,中间没说内存限制什么的。

    其中有一问是实现数据查找中的and ,or ,sub(与集, 交集,差集) 。其中要实现and(sub())之类的功能。

    还有并行实现。

    另外一问是当查找(比如and运算)出前100位时,怎么让它停下来,不要再查找了。怎么实现这种高效查找前100位的运算(2011.10.09最新百度全套笔试题)。

     
  10. 有1000万条URL,每条URL 50字节,只包含主机前缀,要求实现URL提示系统:

    (1)要求实时更新匹配用户输入的地址,每输出一个字符,输出最新匹配URL

    (2)每次只匹配主机前缀,例如对 www.abaidu.comwww.baidu.com,用户输入www.b时只提示www.baidu.com(3)每次提供10条匹配的URL

    (4)以用户需求为主。

     
  11. 海量记录,记录形式如下:
    TERMID URLNOCOUNT urlno1 urlno2   ..., urlnon  

    怎么考虑资源和时间这两个因素,实现快速查询任意两个记录的交集,并集等,设计相关的数据结构和算法。

百度经典面试题回顾

  • 百度2008笔试题

1、 编程题

判断字符串 的所有字符是否都再字符串 中出现过,a,b都是可能包含汉字的字符串。b中重复出现的汉字,那么a中也要至少出现相同的次数。

汉字使用gbk编码(简单的所,用两个字节表示一个汉字,高字节最高位为1的代表汉字,低字节最高位可以不为1)。

int is_include(char *a  ,  char *b),返回表示没有都出现过,返回1表示都出现过。


 

2、 算法题

   序列 seq=[a,b,…,z,aa,ab,…,az,ba,bb,…,bz,…,za,zb,…,zz,aaa,…]类似于excel的字母序排列,任意给一字符串 s=[a-z]+(a-z字符串组成的任意长度字符串),请问s是序列seq的第几个字符串。

 

3、 系统设计

   需求:需要引入用户对搜索结果相关性的评分,100分制。希望用户的打分能帮助搜索引擎排序,但又避免恶意投票、作弊等。请设计一个比较公平的评分系统。

  • 百度2005笔试题

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)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。

抱歉!评论已关闭.