|
|
2009百度实习笔试题$ O9 W2 j- q ^3 w& D& y& c
5 [/ T- I2 C7 l0 K9 e- c2 U
; g. J r& y6 }/ M2 E& f5 d( L: o( `, ?
/ w' k2 J7 R$ \一、编程题(30分)
% d( @/ d3 H/ A输入:N(整数)
0 k5 _0 \! ]$ |. M# `- C- P输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节- D( ]& r; u U7 v& m+ J0 g
文件格式如下:, A1 C' A i1 y& U( N) @ z0 H
字符串\t数字\n: ^' q/ l3 h# |; s
$ M' P) f; G; j/ q* s
说明:& K& H7 V5 ]8 e/ Y) ?! |
每行为1条记录;字符串中不含有\t。; j& y. \- A4 S" u- g6 X* s8 f
数字描述的是该字符串的出现概率,小于等于100的整数。9 ?5 b3 V# Q3 k1 V6 n6 V# B! R
多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;
C% D- T. m2 {+ s6 l+ y' u如果文件格式错误,程序也退出。: n, b# v/ `, o% c4 {
/ R- I9 b# G, g. y# Q3 ^要求:7 g; Z9 f/ ?# `. f+ h7 N7 m- z
编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机& A5 J& ?" E8 j/ J
: h/ Y( B2 E3 x2 r% \. k1 C- M/ j
地输出字符串,输出N条记录, w; K9 v3 m8 K, |0 K9 O
" |" U# @2 S+ z# ?0 ^2 V6 k8 U1 z例如:7 ~, D2 W# u& o2 e
输入文件A.txt$ A; d5 f4 ~; `
abc\t207 _& K. f" z7 S/ ~
a\t30
, I- X- t" S/ P. z+ m. u- V# x) {de\t505 o& Z" G. `9 @* Y% z+ o
输入为:10
- U6 r4 V6 n+ `0 v$ q
$ U) v: B6 u$ |4 r$ O& C+ ]! S即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记
) p& g1 W# s: G
# D2 W% w. D/ \& R; \. y录* o$ E4 |$ b* j3 z8 F1 s$ X% b
以下为一次输出的结果,多次输出的结果可能不相同。
% Y* ^- ]9 v2 M( A0 I6 G. Cabc
+ n! L- q8 e$ k h0 u4 ?2 Ua- R& \$ r9 J6 n' A# Z
de. ^+ Y( \& C6 z& r6 G( V
de( a0 a5 r( J7 E
abc
9 i0 M$ X: Y. m0 J, B4 pde7 }) h) _2 A7 W4 o0 S, x" j
a! z, a. T9 J$ W
de
) c; e3 I, N( q2 |3 Z6 V" p6 I+ F) \a
) `, O# T1 p% e6 S0 [: [de- t+ K' v% Q) D) s1 i" U
4 F: ~) w: k; a二、算法题(35分)- B1 E. ~% [5 N& B/ ^
题目描述:
0 I% [- J3 {# l- i# J设有n个正整数,将它们联接成一排,组成一个最小的多位整数。
0 b, |" |- u, p; y& X9 M+ C. U+ {3 V$ s3 B! V7 z H
程序输入:n个数
* `0 M z( U; ]% C: M6 t6 W! t程序输出:联接成的多位数
! A$ e4 n5 K+ T# v; @
, s! {8 J( `! H. F9 c) j5 J$ ~例如:
9 X' T; ~. h- z6 g. Sn=2时,2个整数32,321连接成的最小整数为:32132,. i5 Q' Z- k7 Q0 J) d
n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355
Y0 T2 o/ W; l/ ^+ z. f4 u( p. j
p" x9 G* E$ h4 u5 i! {3 m( J[题目要求]* H1 b7 d7 G0 T! G& T3 ~ k
1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算8 H i9 T3 |# l7 H Q# X
& h" T& Q$ E( Q9 I+ H1 r法。9 i! V- r0 ]7 j7 m5 b
2. 给出算法的时间空间复杂度。
7 Z2 \+ z7 |' K/ s" x3. 证明你的算法。(非常重要)' u+ c0 @8 c% E6 i; }7 o/ D7 ^
, t# _8 b) i7 J5 A$ a' ^, _三、系统设计题(35分)2 U3 F1 A1 h" V" _$ I
在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概: H" ^- }! |. M: a# Y( @- z
0 F! e: K9 c% C+ e3 C
念) S$ W* G" o8 z8 {$ y
1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简
; h( y7 Y$ v+ P! Y6 Y/ ~+ W" h- u
写为uid);则uid的范围是从1到1000万的正整数。/ r& q5 { ?$ c* p* @% ~% J* C
2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的
( c, T) \+ b4 X* |1 ], }4 N! ?* F/ F, Z( z* T* C% q! t0 I# d( B# n
两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以
; }! q9 m) H0 {* o. I' J
; [/ F1 g: u: E8 J" V% ?被解除
! E4 k. {, @0 _/ Y3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发: r2 Y( O9 A7 B/ Z. n
0 y6 ]; ?0 ^7 J表的文章;每篇文章通过一个blogid表示。
4 s: `; F4 h* y g, C% S8 \! B# Z4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系 H5 C5 p. o4 Z4 R( l
# Z* X2 W5 V a. W
统中就是所有好友的文章更新列表。6 [5 f- d, J4 ]7 ]5 Y# V7 f8 ~) i
5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百
( x4 D4 X% W$ _' @" c2 i6 X# C# I' ~( C$ {
万量级。8 h2 D: ]$ |3 p0 \% m
8 e& P4 F$ i4 W% |9 V0 B: y& Y) v( Z1 N% a题目:请在以上限制条件下,设计一个高效的feed访问系统。- ^/ o" M) M: P7 p1 E9 y
2 k! b) H7 D A7 k2 |/ k
要求:
* A$ Q& |4 k) m$ J& T1 ?1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
" K8 f) V3 E: P0 K: `5 f6 ]) J& f6 U9 }% a
;feed的展现按照时间倒排序,最新的在最前面3 n5 `6 a. t; _4 t7 X/ D
2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友: D* S) b( L9 m# h( i& R3 [
5 s$ N8 o5 M+ {. @0 v" \5 Efeed都是未被删除的
: e( E+ H' }4 I3、尽可能高效。6 A0 u4 m& W9 s" R/ V: V, x
( Z; |; A& u$ j/ c百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html
2 D' N; w4 o" h3 M, W) M& b百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html
; X2 [' D4 {; }: d3 d) p1 F3 f7 X百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html
k; r8 h7 u( U, @ U% C2 v0 C: i百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html |
|