找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1375|回复: 0

[其他] 2009百度实习笔试题

[复制链接]
发表于 2012-4-20 17:17 | 显示全部楼层 |阅读模式
2009百度实习笔试题
1 g) E9 {4 D% N: `2 B; Y
2 q+ x! ]; v9 O
0 ]% j; A; D/ g
: f# R! ~# G8 }2 e  a9 P* Z0 M/ p & V9 ~! E6 K6 z4 ]
一、编程题(30分)
& ]/ L, n0 {$ R* [- E1 ]  i5 y- l输入:N(整数)* O) h* D- w! C
输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节$ r( q$ F  Z8 q) [0 F: e  |8 w
文件格式如下:  i% ~: s# o) T; O7 J1 e) H
字符串\t数字\n0 S! ^# q# \$ {: ?+ M0 h/ z( _
7 ~4 r( _* s+ N1 s( n
说明:' O, ~! @  y$ l1 M5 d& S
每行为1条记录;字符串中不含有\t。
3 O! z, `% o) L, j/ G1 s* o: l数字描述的是该字符串的出现概率,小于等于100的整数。) b; L$ U7 M/ |* k+ z  F
多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;
9 f! @* U& V- X如果文件格式错误,程序也退出。
7 A  r* n- j8 Y3 R: s* T
+ N0 s+ s5 P- d0 ^5 |! C要求:* o9 S4 S, C, d. [: o( }7 E5 S3 c
编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机+ ?6 o2 @! p0 g

0 o) m3 n% N2 ]* K地输出字符串,输出N条记录  N: n: B+ G: x; S3 i# k/ Q: Q* O" @

  `8 z# u' X9 o( m  J7 {例如:) N3 @1 v# q! C! s4 ~7 t
输入文件A.txt# J7 B  A- ~$ @- P- a
abc\t20
$ L  E6 Z- T5 S. xa\t30! `5 m& g5 d  {. x, i: I
de\t50! A& O' W! _9 Z( X: W/ Y
输入为:10
5 R3 p" z- S5 z
4 O; m; E& `! x& k6 P* p9 k- R) r即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记
. g9 X0 F2 R3 M1 x
: B! w: m: u$ g6 o" r) Z
* W$ i4 ^" @- R8 x2 b以下为一次输出的结果,多次输出的结果可能不相同。1 ]/ L! W; N$ b5 |+ t
abc/ X9 V8 ]+ f4 r
a5 f4 q' i5 G5 u. {
de
7 R5 }5 h+ f" l$ S/ Xde% C% c& {: a: n- J- [
abc
% ~6 J( n! U2 V" a* E! h1 y* K3 `( B5 Zde; \' Z  d% U' ^" ~, h  ?" o; c9 v
a2 V* p/ K7 o2 z) u: b
de
! T5 _- z0 z2 l( C5 Z' r) pa! p; K% g$ }2 m5 T7 {
de
5 j  A2 r" T8 t* b1 |6 e! H
- L0 g- f0 l; ^5 p二、算法题(35分)" k% D: s' u, b& j  P* H
题目描述:5 \% h0 g7 o5 f: d9 l
设有n个正整数,将它们联接成一排,组成一个最小的多位整数。
  t) k  k+ D/ |% G4 d% k9 P/ z
- w  }  t1 G) k! `1 L程序输入:n个数
; z3 f# [; p: p( j; K5 T0 |程序输出:联接成的多位数
: k# C! D3 v$ C$ N- T% V5 ^' T$ o2 S  K: t  O
例如:
- H( }5 @  N' f) D7 kn=2时,2个整数32,321连接成的最小整数为:32132,1 Z* I9 ?4 N6 X2 |
n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355$ L" g8 p+ X: ?3 U5 o
  O! B' i9 O. f- a; T% E
[题目要求]
" o$ Y! x: q, I1 @( n) d' w. X1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算& a8 k7 P8 G! t: L5 `; ^5 p
& a- ^( h5 x) ?9 w) @( a3 T: N
法。3 ~- N3 y+ e$ h& n4 v
2. 给出算法的时间空间复杂度。
6 D: c* L. }+ N; O: J3. 证明你的算法。(非常重要)  t' D/ T9 N5 P# g

: K1 r/ Z+ {2 l, F& Q1 C. Y三、系统设计题(35分)
! a, F1 T6 E7 n$ L6 g; Y7 x! T在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概6 u2 m  t3 _/ ]0 X% p
$ J, h7 W5 l6 R6 ^' F
' q. q7 V' V( U8 _* S/ ~
1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简
, r6 t9 G: P' w% X4 c0 [5 i# O3 V" V$ S- S  s5 D- V& ?! P4 y3 \8 _
写为uid);则uid的范围是从1到1000万的正整数。
: I  G7 o" |' g, q1 ]- I7 i& u: T; c2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的
4 f4 ~; _8 S: o& ~+ X  W7 G) n! L# m4 p3 v5 @7 V
两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以% I% t- O, M) g& L0 {
, N" |  z; e5 o
被解除! d) `( V8 T, M, S( s
3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发$ O( S$ `- D* _$ c6 P( |% g
0 e# O) v4 e, e0 i1 _( Y
表的文章;每篇文章通过一个blogid表示。! R# o2 K  C5 @$ _: u
4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系
' D5 `' S$ i* B2 a, l" T+ Y2 Q. d5 N7 o$ M' s+ ~
统中就是所有好友的文章更新列表。- O, Z7 x/ l: @7 p& l
5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百. P# n- N% A0 ]# C
0 G8 p7 v, g) [. S
万量级。, i  K/ z3 m# y4 z/ L
9 |  D! n  ~* @/ }- {7 \& L+ h# j
题目:请在以上限制条件下,设计一个高效的feed访问系统。. p6 a* J2 [& G/ ^- G7 m. u
9 G# M- g9 [  `( e/ f
要求:
" g1 Z. p% Z( R6 g% @/ i( q0 J; d1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
0 U  `1 D) h$ j7 G' z
! l! N8 t# n- O  D1 {9 b;feed的展现按照时间倒排序,最新的在最前面
+ c, u+ F1 V% d) d2 J2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友
+ C9 t$ X. r4 X; u$ r0 {
! p5 A# X/ _0 f/ [0 j# w& Xfeed都是未被删除的
9 i4 K9 K  K! J8 g: Y) A3、尽可能高效。
# Y" h) I. Z. T: Q6 p" p2 c
* [0 l6 O9 d  `  I- l: f, G百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html
6 }/ O8 L6 p$ T; q  P4 A; Q百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html+ Q- X% s3 ]: w( Z9 `+ T
百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html8 e  j% Z9 H( j5 H! N
百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html
您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-12-14 13:59

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表