|
|
2009百度实习笔试题( t: f7 \# x% a: M7 u$ z0 x
3 F' ~& o: _0 r: e% Q" `& R; E/ f0 P7 z( S
) I% w f0 y/ H. O# \
- g9 Q- c3 @& O# t. U- R
一、编程题(30分)
$ C3 C( K& ]: O- `. E: T4 j输入:N(整数)
& u3 |% C, c1 ?$ h6 k, o( l- E4 \输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节
! F. S Y7 p* e9 F文件格式如下:/ [, ?$ A3 `) M1 j. Z6 f/ e1 i3 G
字符串\t数字\n" F0 h# s! C0 K
' {/ X3 [$ r, A7 O, V) X/ ^+ F
说明:, Y" ^* F9 D' G5 e
每行为1条记录;字符串中不含有\t。9 v! s$ h1 S) h
数字描述的是该字符串的出现概率,小于等于100的整数。' q7 M/ ~% _' l* G; Y( M; R% H6 B( _
多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;1 e6 T; R! d; x" W+ y+ h
如果文件格式错误,程序也退出。% E/ `1 A& P( [+ X% A8 Z# v' S
4 N" n. I1 w$ S& k- X# F, H要求:
2 `0 S) l% x' s$ R0 R, _编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机
. c* u+ K- Z& ]( t
8 @% Z+ A5 |2 j7 j1 R w7 M [地输出字符串,输出N条记录- h! m; m s2 d0 n7 F
0 q1 `( u* E: I8 j( z. c& S例如:
! b$ a( R+ [" ^6 ], Z1 [# u# q, A输入文件A.txt
% k$ y+ n+ d2 O5 b* t Qabc\t20 o" B/ N2 T' z9 R
a\t30
2 S0 {. B% H- P" D7 vde\t50
1 m- j$ K2 g# ]- Q5 ?输入为:108 g9 d0 {4 e" }5 o" B
F- a1 m3 M: C# B3 Q9 P即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记' z9 I: t* y% L6 g! V! m X6 }
4 B% R1 n- Y4 t- F' ?: a
录
; h* r f" y. ~3 c( F& X6 ]% B& B9 U以下为一次输出的结果,多次输出的结果可能不相同。2 S! j. A) Z) X u+ ~) z
abc; Y# f! Z2 _1 X2 l
a
8 \3 x! x) O3 v: [8 i" ^/ r5 }de" b& b, \8 T6 e) Z/ t
de5 o; f; E' z# I' G: q$ U
abc
* Z, p$ ?& h7 h6 L( _de
# k. ]8 i1 \0 T0 Za
* S7 I6 O3 L& V& ]. Ide% ^/ l+ I1 _8 B$ f
a
: s4 ^1 N& m, t; n+ f" @de
# b8 v- {5 R, q; V; }& X a$ a* M$ c" T, Y( ^. T u; N' U
二、算法题(35分)
2 Q. F+ X6 S, q$ j题目描述:
% {& y V" t4 D! y! @9 a: D0 E设有n个正整数,将它们联接成一排,组成一个最小的多位整数。
3 h, i4 \3 ~* m2 O6 `* b, T) {0 a8 ?. X. g5 v" c" k8 W5 @
程序输入:n个数% g4 B- O6 c$ T& @" f
程序输出:联接成的多位数. z" ]" ]# W. _& K* W
$ K# R/ `# g0 t; H5 `
例如:: E; f, _( b5 J6 s& Q8 l1 T
n=2时,2个整数32,321连接成的最小整数为:32132,
# a. ]7 t- I3 l7 @, N# un=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355 @% o9 g. a8 F0 }. y" ~- a
0 R" E1 z& P0 m[题目要求]% p8 z9 `% ?1 X% l) e6 i4 l
1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算
9 \4 P( F- [4 v4 ?8 }( b; i( x
- a! b8 l U- i& q; Q法。
% q- r( _0 @% e3 ^. g4 H, m% G2. 给出算法的时间空间复杂度。1 b! g* W6 z# Y5 w( E
3. 证明你的算法。(非常重要)+ c# A4 @( i2 Y0 ~
& f3 t1 H, N J/ U( h* e1 o* A
三、系统设计题(35分)
+ f4 N) J7 S' C) @/ l1 k; T0 }在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概
' u) t F' d; u8 G. B: R6 m0 V" p H' j# X: P$ }& e
念
7 S+ F7 }) U y* C( e" C, b. N1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简- h1 A C+ E4 R8 T# I
4 H0 v8 j& y) K! m' D写为uid);则uid的范围是从1到1000万的正整数。$ h, e8 _7 ]5 I, u( `
2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的
; }7 ?8 U: L j3 K: s. \( r$ p* Q; N( Y
两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以0 i1 k; R+ J$ t9 `
$ ? b) O4 _4 d2 X! u4 u# v被解除& G' G: ~% x# e6 i
3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发
, i) @2 ^' y6 W9 P
; f$ w7 T. A$ }* M表的文章;每篇文章通过一个blogid表示。
- n. V; F0 b) {$ t- E4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系
& D& ^+ Q" S! q) f& b. \3 l! ^* A2 m( q A" s/ _3 F: p1 K
统中就是所有好友的文章更新列表。% \+ ?0 v# H2 k; F5 o2 Z0 X
5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百
2 @. |" k8 ? ]. W# T/ [
?$ b! z- r6 `; R万量级。
/ e" F8 P; r& N+ o
1 `& t' b" R$ C. ?# L题目:请在以上限制条件下,设计一个高效的feed访问系统。; \4 ]) r, [/ K8 `
, O' a; `8 L; K0 r! n* U2 G
要求:0 B& [2 e* E9 f' t3 y
1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
; K T. L9 ?# |% ?+ q6 a* j9 b9 X+ K/ ]- H! o4 |
;feed的展现按照时间倒排序,最新的在最前面
, j v: O- ^5 K2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友
?6 q: x0 j& L: z, R* Q' Z7 d0 B1 ]- i0 v; C5 Y
feed都是未被删除的+ w& A! V* `+ f: Y
3、尽可能高效。& o4 R8 B+ H, J' v- X
2 f2 X7 y' g* A9 t& u
百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html
+ ]5 Y7 {* A; i& X百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html8 q: O2 p. @$ N
百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html. _. ?5 l/ G: F+ S L- G& H" l
百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html |
|