|
|
2009百度实习笔试题3 O# e8 f6 J. i1 J1 b
8 ]' g+ Y) M* x0 \6 j1 R
- |% K+ |- S$ N. o% ?4 t G; [
$ K. `0 {6 U; s- B7 v
; V+ }. q9 l7 V$ N' @1 z一、编程题(30分). C) y" t9 j. w) |7 O
输入:N(整数)& k6 B* J9 R. d0 R1 C
输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节
2 S0 D# A1 A( | B文件格式如下:' f' r( j& L7 O, v& `$ f, T! h
字符串\t数字\n
9 q% x* X5 t3 }7 p2 _7 r# G) k) z( n! m ~
说明:) l/ w% J3 X: k: R; ?5 x
每行为1条记录;字符串中不含有\t。
8 b J4 [$ M Q3 F数字描述的是该字符串的出现概率,小于等于100的整数。
6 _. |7 g6 o; \6 J7 l多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;
: I8 |0 i- ^3 k+ u如果文件格式错误,程序也退出。/ j( U2 _* u! F% u P0 z
4 K g7 X% L# C7 w. }# J
要求:
; k* n9 O* W; G8 O8 P, C6 z) j7 L编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机
. m& E, o. s- T5 K
: ~, x0 g% c' \" B1 W地输出字符串,输出N条记录3 x$ Y) b' ^) e
/ o* M5 r" L5 U例如:- c# A0 r% I0 i4 G
输入文件A.txt8 V7 d3 R4 ?* w" @" y& G7 t! C
abc\t20! l3 r8 e! q1 ^, L5 h$ E7 A
a\t30% d1 r N+ S0 J5 B$ _0 _$ J
de\t50& c; A# i7 T1 i7 M+ p9 c8 {% r
输入为:10
! n% s. U# m) ?; m+ i9 U# `0 @. X- t" \% v' c
即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记
1 E1 s. L% [) j) l/ g; t
4 R: O/ v4 F1 F7 u! b4 E! ]录! P; i4 j! m; g1 s7 v* v6 D4 F7 b
以下为一次输出的结果,多次输出的结果可能不相同。 |2 g5 z, [: J- A5 ^! h- _
abc0 @1 S* d( K. ^7 b, V$ [
a
! h2 H( K2 V8 r/ ]' @de
; I. Q% `0 c3 n. `2 Fde5 l9 K: W: x8 U' `& v* P5 H+ o q
abc
; B& @6 s- c6 f# F: i! c1 Xde7 c8 A) ~( a6 [4 D/ w# r
a3 H. F: } R) x) g7 |
de
% y! q! a# T! `9 p/ f' R8 ca. a8 f: e- x' F) |$ N( b
de
1 W( e8 Z. F' t6 U
S( m' r# h5 S* Q9 ]二、算法题(35分)
3 L5 L# Y- _. f% \6 q+ q9 \* Z题目描述:
% G& P0 d* I) q设有n个正整数,将它们联接成一排,组成一个最小的多位整数。
$ ?' ?6 R6 {; ~' V
6 B9 ~" Z7 O/ a程序输入:n个数, Q% n$ q- {% E" E$ h' |
程序输出:联接成的多位数
n+ F5 L l( L9 Y+ s3 D6 L3 ~* [
例如:
3 \2 O) U1 b. p% J" h( Y8 ~% ^% r+ T+ Zn=2时,2个整数32,321连接成的最小整数为:32132,; m, \- N; p+ u8 B1 R, m( |
n=4时,4个整数55,31,312, 33 联接成的最小整数为:3123133552 [: x, |7 T; Q6 s' `: B
4 p+ X$ y; B4 d4 ? ]. ~" T
[题目要求]" o$ l1 m5 H1 b t
1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算
t! M$ A' Z2 H( Z$ }. M) u4 ?
4 G( y2 C# g, _1 x法。
9 w' i: v# Y0 g' N$ O( `0 O4 M$ a2. 给出算法的时间空间复杂度。# V+ S( U4 C- X- G
3. 证明你的算法。(非常重要)
* f3 m4 A9 y4 n3 W( g; p9 ~0 Q# ^- W0 P) r4 `; e
三、系统设计题(35分)
3 z& t& L. G# z3 ? Q( v在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概
9 N6 h* R/ K# j/ Z% X5 h p
9 _9 ^1 g! }, T! N- c7 }; R念
' G; v& i3 k! I9 `7 U$ _1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简0 V) V) u- V* h# S& L
3 I. X$ w5 m& y( g* m+ ]
写为uid);则uid的范围是从1到1000万的正整数。
a& e( C7 D9 R- b2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的2 b$ l% u% s$ h2 W
( b; P1 b& Z* _" S( W# b$ J8 s两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以# [% |! W z& S; k- B% q
1 E- t0 e; J& M* \/ |
被解除
# u7 c+ m/ i3 u- q Z: Q0 f3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发6 }, m0 `; T' B3 y
. K4 G5 f3 V% R4 B9 b表的文章;每篇文章通过一个blogid表示。/ S' U7 Y- l' b1 q5 O- S
4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系$ r1 \! P) H' R5 t
0 V; C0 s# b: m统中就是所有好友的文章更新列表。
' M& K K/ Z* L% ^5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百
1 y, C, @) z* f" h% U% n3 o" i2 P" |2 C' w
万量级。7 f" u4 R* `. S( _8 G# q( _
0 T" G9 m8 Q" M; C. F6 j m
题目:请在以上限制条件下,设计一个高效的feed访问系统。5 _4 k% J O* p, x# A" F5 v3 |
$ Z x1 F- M E# o- v& Q要求:% Z, M1 A5 H+ V5 ?/ T
1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
- V( W5 V8 T; A& @1 H
8 ?9 [0 x5 f6 L6 b;feed的展现按照时间倒排序,最新的在最前面
$ W0 h6 B* y% O5 ~2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友. i" p6 T0 X9 t: e) s( i5 ^. K
+ s, F+ ^1 }: R& {" L* ]9 d0 wfeed都是未被删除的/ \' d" V9 {; J) d. m, X9 G: m
3、尽可能高效。4 `' v& C! N; U* W' v1 k3 P, }
% z. `. X+ P% U6 M! R5 W百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html4 E; E3 D9 u( g1 H# h" t7 \
百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html1 u2 `9 |4 B, c& S. H
百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html
% N+ I1 a: e, B; O" Q- }百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html |
|