|
|
2009百度实习笔试题
: Y9 |& B8 u5 Y0 }- h
0 ]7 i {& M2 Y. X
4 f# v' _" \! W( D$ K% ]* M9 |7 e: M1 |* o6 a' m& ^
0 q' r- v' `* Q b* @5 G一、编程题(30分): p- g& |. b. i4 Q, @
输入:N(整数)3 \* F8 X8 r8 T* c, f0 I2 W* A% G
输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节
O! ?% R8 X K$ T+ y$ A9 B; ]0 ]文件格式如下:
" Y) m3 g% i: @8 ?$ W) N字符串\t数字\n
% w0 W" S0 s& o+ i* k" @- q9 B' Y0 _/ p5 x& I, z" A
说明:
1 C8 n4 j- Z( f7 ~% }3 y每行为1条记录;字符串中不含有\t。
+ k1 t" }9 U, u. i( Q数字描述的是该字符串的出现概率,小于等于100的整数。
! t& D4 Q* o6 P4 P" _多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;4 K' T3 D# I0 P1 P
如果文件格式错误,程序也退出。
8 a: r1 \! ~* q: Q( Y1 J: g' R3 r1 o, K. g/ V: R m, b: a
要求:
% e( |5 ?* K* d1 D5 y( C6 y编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机( E) H/ v5 @7 C
/ Z* e) t" r4 a% a5 T8 R( C+ @) R地输出字符串,输出N条记录
: L: F2 s( g: b$ D/ B: R
$ m7 f) F& p( V+ ~例如:6 C8 A& I' a) s, ?
输入文件A.txt
" V \6 J( O$ a' z" ~+ s; mabc\t20# n) s1 j6 e! o; [: p5 H
a\t30
* Y9 D) b! B" A) _) N+ sde\t50
& [0 q- T( h2 V输入为:105 [" G/ A, [. }* Q: y/ U# t& C
" e& X5 Q- @3 k# {# h p* ?$ p9 h
即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记 k; {4 H* `/ x3 c( g- A" T, W
+ G; J; h$ U% V8 s1 G9 N录
0 R4 y. [. I. r以下为一次输出的结果,多次输出的结果可能不相同。
8 y: I3 o2 F7 A$ Y* c9 E' Labc
$ o3 f& s; z* _# Qa: Z4 l. W+ G1 G* c' Q1 Y" z
de" C/ h" C# P2 {& C' E" t8 b
de& ]7 {. q0 Q4 W3 B6 k
abc% f h% [" |6 N: v1 z! B
de q; c9 R, t, h E. J3 U7 l( O
a
5 e- f) \ l2 M; F& T7 mde
1 h w. g4 ^* b. ?* ~a
. Q) l- T! ]9 g5 kde1 ]6 D2 t( U- k5 m, Z3 f! Y/ G
/ ?8 j4 P3 T) |
二、算法题(35分)
/ F1 d3 f! y) s$ x* t题目描述:
5 c0 a) v' s8 E5 V设有n个正整数,将它们联接成一排,组成一个最小的多位整数。
" v9 o" Z4 L9 n) ]$ [, i4 T- h$ Z- ~ ~
程序输入:n个数
6 I& h. t5 W; w/ f程序输出:联接成的多位数
' w, w9 |; K% b8 L% Q( B
2 G* d& n `6 d# g" J* J例如:
" R3 \8 y; h6 M7 y& In=2时,2个整数32,321连接成的最小整数为:32132,
( l$ w9 F' N' y+ E4 cn=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355
# z4 y$ @9 W$ x) v5 j
! `' i/ ]! x L9 w; v7 P[题目要求]
) O K' o6 U7 C- z. t. K+ \5 e$ @1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算; T5 ^ n5 e+ c& ^3 o7 i" _
( \8 q8 ~8 d: V H2 {/ ^& b
法。. H c; h' L6 q% j D7 R
2. 给出算法的时间空间复杂度。: {! @- h. ?+ v
3. 证明你的算法。(非常重要)
6 [* _$ R G7 m" n, |
! Y# N1 X1 G5 m. q5 g2 B( \; A三、系统设计题(35分)" p2 L( T; s, y& p# E1 h
在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概+ n/ Y/ i) p1 f; @- t+ ~
4 F* b5 \( b$ m5 S: u. V; C
念
! \; X# |) U2 t$ C5 @1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简
7 X+ @3 X/ ~/ B" S
+ V! n) `6 T' }, I7 A, j6 x( s写为uid);则uid的范围是从1到1000万的正整数。0 G. P0 }) O/ f: }) c
2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的
! }0 k: U2 Y0 K- A2 `' ?1 B+ [7 q
1 [% `7 V3 g8 i- }; Y% a两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以
/ W: N( D' }6 g q8 i! J' S+ c2 |+ |3 }1 d6 ]
被解除6 A; h* |/ ^: p/ s* J# Y1 ?3 K
3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发7 N3 T1 ~/ K5 A5 E' T. k
9 s8 y( I) Y) R; s' x. W
表的文章;每篇文章通过一个blogid表示。1 }: F* h. d( n- V% f
4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系
# H6 R2 Z3 Q$ k& ]# e& U% X5 @* B9 Q( k
统中就是所有好友的文章更新列表。
1 `% X+ g$ J( ^" a7 L- B: D5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百
' v, [2 A* X1 B7 U- n8 y% `* ^) R' c, b, ^3 l
万量级。/ ~+ @: U8 g; v' F) L4 I
& [( r( c0 K. {) {4 R题目:请在以上限制条件下,设计一个高效的feed访问系统。
2 N: V$ C# s, _2 \' A2 [
( I6 |+ C3 J8 O要求:
" A' _' Y7 w" b6 p, K1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
$ L) C# U# ]8 _5 }1 m5 m3 R# w
5 K' s/ b |9 L;feed的展现按照时间倒排序,最新的在最前面 t9 `9 C6 v: d8 Y( c- \
2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友2 o9 n( g: \: n. [9 Q( K; Z
' F; L( t1 L, q6 p
feed都是未被删除的
- [4 B$ |: E' ?& ~3、尽可能高效。
" n6 q- }/ d9 x8 R; k2 ^ V' R0 D
+ M! Q- h5 l5 v- I6 F1 b! t百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html
3 F% G" p8 Q' Q5 b" Y百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html3 ?" j, e8 {1 F
百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html
7 a, {" z7 h4 D% {百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html |
|