工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 828|回复: 0

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

[复制链接]
发表于 2012-4-16 12:01 | 显示全部楼层 |阅读模式
2009百度实习笔试题; A  E9 F0 O1 [7 L7 S

; i3 r( o% y9 a: S1 }" R8 {2 U" N. h& ]+ m7 u5 l( S3 {+ I: D

) r4 ?. \) h8 M* R
3 k; Q: U( ~1 Z& C# ^一、编程题(30分)
% B) [: T& i5 m  u+ l8 [) ?输入:N(整数)
6 z4 q0 x. a6 M8 j* C; |  ?1 [输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节5 `6 _' W# o/ f3 ?
文件格式如下:
# \7 o8 w: X: w; A字符串\t数字\n* k6 D2 j% G! Z! A" e* F

; F9 t7 E5 k0 X: {  X+ F- U说明:1 p( w) l# v: E5 A
每行为1条记录;字符串中不含有\t。
6 _. M0 c( ~- I( _3 i数字描述的是该字符串的出现概率,小于等于100的整数。2 ~; U. \3 L  p+ Z0 E1 z* w
多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;
, R- [( W% ^) G# e2 m8 e' s: B2 v' x如果文件格式错误,程序也退出。: k) [+ p! c. m0 z
0 T% N- G! z+ p( }; z
要求:  t) r) F0 `- x5 F$ x
编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机& O0 K% i9 X0 q8 e- ^% }1 j+ h: L

' `2 l, @% X  ?' {+ ?. s6 @  _$ A6 N地输出字符串,输出N条记录5 T5 e& D  F" ?5 C% H1 ^" E

7 @( C0 `" |* y9 O* q- ?例如:
/ X9 n: ]0 h- V# c, W输入文件A.txt
  u8 K5 {7 a) R1 C* Fabc\t20
: D$ G9 H; g: qa\t30
! X6 s, R3 U8 P6 o: Hde\t50
- p" c# I& p8 ]. t/ @3 O& ]输入为:10
, _6 N6 U5 B/ k$ m, }% J& V0 a  y1 Z( h3 W' @/ B
即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记
! Y- C; s1 b+ H* t( R7 O3 f% s6 W' W% U9 R2 m: A
( ?& D- R  R/ Y9 A/ ?
以下为一次输出的结果,多次输出的结果可能不相同。
2 m; f3 t% E- e5 e5 O* C! Zabc5 L( @- N( [1 T
a
* c' r+ t) z8 m9 q. ?! ]# ode
) s: |7 P, q2 b, u( B! h' Vde
- Q/ _" ~9 w# G* R: q( Uabc, n& i& z- I# H5 k- C
de; L9 @; s' }( c" m
a
4 A5 B' l& ^3 j. D( B8 [de2 ~# ]( u/ k7 i
a
/ M$ N* g) T; F& e  w- Z' u7 {& Dde: S, @+ R0 R- b" ]# c

* Q1 X# W  w7 q二、算法题(35分)5 C. w. T+ V2 t/ @4 n. z
题目描述:* k9 X0 ?: w/ f$ m2 D- S1 h1 s: t
设有n个正整数,将它们联接成一排,组成一个最小的多位整数。1 h: _0 x9 y; c  \

$ [- C, z+ `; H, x程序输入:n个数
5 T! G1 q9 ^( D( R$ h/ R  q程序输出:联接成的多位数: q* L9 N6 Y) W9 |4 G

+ e4 |3 V# F0 i) @# i% s例如:+ U8 ^, d+ v& v- G; Z' D, F9 e# Y
n=2时,2个整数32,321连接成的最小整数为:32132,5 Y  m" ^) k& D4 J& c
n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355
2 Q+ W$ J0 J3 G* C1 t& t, `5 B7 [9 r! R. t! Q0 ~
[题目要求]+ B+ J& R) s$ h' E. J; u4 H5 O
1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算* y8 d$ {% ~9 i7 j' ]
! H% D8 g8 x  [
法。
& E1 M: i* V! D+ v6 Y' c' Y2. 给出算法的时间空间复杂度。
- K8 t1 k: F2 T! @3. 证明你的算法。(非常重要)# A( V3 ^+ j7 g8 [' @3 _

( k4 @  y( \. [2 o三、系统设计题(35分)8 P& v+ X$ L* |
在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概
1 a) R' l+ |. x% R7 e
: I2 s1 i& M( r: c* G6 v$ J3 S# K! D' |+ y8 B" F5 X: A; I5 M7 r
1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简9 n* O6 H6 N8 n  [+ f
/ [! |3 O+ P6 c2 ?/ b1 O
写为uid);则uid的范围是从1到1000万的正整数。
! l2 J+ E, [; G/ E' s% t) }2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的" {9 b9 ~+ s' Q- X1 ]

# u( s9 l  y, O& b0 `两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以
, p' r# j3 u! w. Q) ?6 s7 J
7 Y* Z2 k# O+ h% W" C- x被解除; u0 A- l0 r& e1 B
3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发; D  G$ @+ \7 z+ I
& D# J4 O8 C4 _: r
表的文章;每篇文章通过一个blogid表示。# U. t" Y$ ]2 k5 j
4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系/ T% `3 E# R; Q% c2 V# B

; B; t& B' d( z+ Q统中就是所有好友的文章更新列表。5 Z) w- U% d  E( V
5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百) j9 T8 M0 \9 s" G0 K) U
  u8 v% O2 W/ n( X4 w) B) X& E
万量级。
* l( L0 U! ~  Q/ W5 W1 Z
8 r! H7 N+ z( Q( g3 c题目:请在以上限制条件下,设计一个高效的feed访问系统。
% Q# A. [$ U8 B1 f3 B% Y9 W
. F9 ?3 ~9 K; V6 g- f% c要求:
1 e5 U0 r- T" M6 V9 H3 F1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
' g9 d( W% Y; M5 a" h* y, X. E
. Y/ A4 Z& b' [6 [;feed的展现按照时间倒排序,最新的在最前面
  R9 J: {% }; v2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友
$ p; N% b$ E# K, C7 w+ }/ \+ I9 ]: E$ I
feed都是未被删除的
% U) l9 h2 `( G0 `$ O: k) Y( d- K3、尽可能高效。0 N' t( j9 {& ?) `# B% |: A

* p3 z( ?: S9 \9 h: q百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html% l2 j2 p, Y) c4 S. o
百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html/ |& o1 W! U  j' @2 {, F5 J
百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html
3 ]! g( |2 b8 Q. f( E百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html
您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

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

GMT+8, 2024-5-17 16:09

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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