找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 997|回复: 0

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

[复制链接]
发表于 2012-4-16 12:01 | 显示全部楼层 |阅读模式
2009百度实习笔试题
! a" @/ j! C$ S& s
! y# ?- I7 `' s, T1 T3 }
0 F# v. Z5 s2 U- s) B
: B) c7 U& k$ c& i+ B& Y; `  b 7 ^6 s7 p7 b0 `% V7 t' C, _7 y' w* J) c
一、编程题(30分)7 Q! W% [' }$ Z$ I
输入:N(整数); S- O% X+ `9 y8 s
输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节
; K+ @4 ]5 Q, H' I文件格式如下:5 U/ W7 v$ e) W
字符串\t数字\n
2 L% |: Y* @# W  F+ \* A
. e2 @! `. L( L/ r- P说明:
- |$ k$ L* p) l8 O8 m每行为1条记录;字符串中不含有\t。
" U9 Q0 t+ B$ x6 h3 ]# h3 R+ B数字描述的是该字符串的出现概率,小于等于100的整数。: d# t8 }0 c2 [3 Z
多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;
" E" g6 g, V5 B9 k/ O  Y* `) z7 Q如果文件格式错误,程序也退出。0 G- i1 ~) B2 U0 o9 n# q# r8 Q
; z* {5 D* s6 y0 H! ~/ v8 U1 i, C  y
要求:
. x- Q! r! U. R编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机
3 w' c8 R, x- ?; C8 |- H4 @: Q1 Q: c7 k1 ?  c9 s+ e
地输出字符串,输出N条记录3 Y, [6 e# J5 x$ u# F

* |+ F) e, L+ a例如:
; x* f! b9 e. w输入文件A.txt/ g- ~  d9 u* S7 w, R8 i
abc\t20
- W  M4 y" d# c- Q7 K$ q+ ja\t30. a9 g. x$ x8 N1 P- N# Y1 E
de\t503 k" b) R& e; j+ v' e* P, t
输入为:10% m" r0 j1 Q) s6 U3 P6 i+ s' R( n
- m' E9 V7 L$ W: G) A+ w) S0 |
即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记; Q3 `* R4 r6 c$ L6 H( @
* k' L! ^- n1 C, A" e1 ]
& I  q& D  Q/ o$ }. @
以下为一次输出的结果,多次输出的结果可能不相同。
6 b( ?  H+ e) L9 p! k2 n1 Cabc
7 C# ^9 h5 Z# ha
  @& Q- E+ \! r+ j4 T1 c6 ~de0 }# j$ m4 b! V( _. X
de
( }/ Q) V( t, P2 I5 \abc
  d7 g& u7 ~# Y! v9 [" Fde
" d: R- v7 H$ ?' u6 y/ Za
5 E+ V  k* F* I& Ide) P" g% l% T2 s$ [! O' c
a2 J0 Z/ a+ s( h# a0 d0 V
de2 M5 `2 V" u& N, p0 N) j5 I. [+ P

. ^& T: ?, \, Z: P" Y( x二、算法题(35分)
$ f. H: i* I0 i7 Q; Q5 s! n题目描述:3 v2 [$ l( L# k+ Y2 Y
设有n个正整数,将它们联接成一排,组成一个最小的多位整数。
3 i6 n- v6 y9 I# X6 R8 K; ^/ c: \5 u4 E1 [
程序输入:n个数
' J2 ?% `0 T2 d) _) R8 x程序输出:联接成的多位数
) x, N1 W4 `, A! p
& L  k. X7 L. w: i" p. d例如:0 i+ e2 P  t0 A) W
n=2时,2个整数32,321连接成的最小整数为:32132,7 \: w; K7 R5 |7 i
n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355
4 O' `, J; }8 n/ O. ?, C) K5 f6 R1 R; o3 h5 k: z5 M9 W
[题目要求]/ u) P* D  j+ R  X" `# c
1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算( U1 |3 n" |$ u

  g( j- R8 H! ~法。
, c# G8 [2 j! Z6 ^( V$ ^, c2. 给出算法的时间空间复杂度。& {6 {. u) K8 |7 G) P9 M7 T
3. 证明你的算法。(非常重要): G8 b, u/ F2 u# C3 j+ m' G
# m# P' a; T% ]& H! r& V, |
三、系统设计题(35分)  _  o8 y/ h4 t; M5 [( a" e
在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概
$ z3 W, C8 V8 b& K, T  V7 O' B! m3 ?2 a4 |9 B5 }4 _
! D6 Z& G9 S4 i& V
1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简- \6 s+ k, D) k/ S6 b& l

/ R4 C& A* F" G; `. r: l/ m写为uid);则uid的范围是从1到1000万的正整数。! y/ _1 f0 `& e: d, A
2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的
( Y1 v5 ?0 p+ q6 ~4 [5 \8 ?# @: i6 I5 f8 d
两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以
: q4 G; G4 c5 d! u* T% B7 I  x( \( c# t0 P" V( E3 `, S( t
被解除; Y' }0 F; |1 t+ ^+ _" ~+ K
3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发# n- N. o( T  B4 C2 g3 ^
/ ^/ L) T/ p0 e& }& K  E
表的文章;每篇文章通过一个blogid表示。. p. X6 {* N$ n/ J' S' d
4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系+ ~% F3 D7 [0 M, U

' e, V& I- G* Q- R, p7 {统中就是所有好友的文章更新列表。% p/ p* n( y( [$ ~9 C/ c
5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百
5 i; a9 }- ~: C6 z
2 a' n4 a- B3 }( J8 H! P/ @万量级。
. Y7 `& W5 G1 q' u3 t4 k  o9 [6 T* E6 o$ L/ u
6 f" y4 V% }! V% |9 Q* H题目:请在以上限制条件下,设计一个高效的feed访问系统。- b5 P# x! m8 J2 O

1 X& v( r8 p* L; a" f+ _  U要求:
  s$ P  }) d! _( t9 G1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
& }9 n! p% m3 k8 S: D, j9 V% l5 \2 W
;feed的展现按照时间倒排序,最新的在最前面& m7 m9 e) Q: e. |, J; T& M
2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友
! ^' z6 }8 r# x$ D5 f: S
$ b% g$ D1 p$ S9 I8 Cfeed都是未被删除的- x3 X- J" H" E( ^
3、尽可能高效。4 y& T1 Y$ i: ?# }/ S3 c

) i( f$ w& W% P8 F: z+ g: V百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html! k( ], T5 R# A. R8 ?
百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html
$ b6 O! ]4 l/ i) R$ ?百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html
2 _1 i. e3 Z$ h" _百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html
您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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