找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1074|回复: 0

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

[复制链接]
发表于 2012-4-16 12:01 | 显示全部楼层 |阅读模式
2009百度实习笔试题( `& g2 Q" K; g5 ~7 j

* Q- v8 s7 C; ~' E7 K
$ E! H4 V( @2 B# i+ d+ d
9 D3 e! }) z* g; o3 { $ _- b& Z" p" i6 Q7 }! {8 w. m
一、编程题(30分)
0 j: Q0 |2 {$ Q输入:N(整数)$ j& b- a7 C) y5 B" ]3 k8 g& h7 C7 V
输入:数据文件A.txt,不超过6条记录,字符串长度不超过15个字节
0 j) |! D( L, a7 {/ ^文件格式如下:3 Y$ S. U% t- d8 g/ a* @/ M% F
字符串\t数字\n
! G( o" c3 b) Z& d5 ?
( a3 ^' r# Z& L- D7 U* l5 q: J1 A说明:
1 R" O7 |: @* Z8 O每行为1条记录;字符串中不含有\t。: ]: J& k, u. @: f% D
数字描述的是该字符串的出现概率,小于等于100的整数。3 w- A$ ^& Y) p9 C" ~  t2 [0 j
多条记录的出现概率之和为100,如果A.txt不满足该条件,程序则退出;4 B$ o4 R! K" O
如果文件格式错误,程序也退出。
: N: K& c, Q; g+ o
; G2 z, Y* U, V% r要求:/ X& n, ^+ [" F$ y
编写一个程序,输入为N(正整数),读入文件A.txt,按照字符串出现概率随机6 D5 M: R7 d* u' e0 q! s, X( j

- r* B5 X% p# D+ I* w$ u地输出字符串,输出N条记录
! a7 ^8 F- h6 C$ {6 ~( H, q: C
例如:
, ?- k) `- ~2 s0 y输入文件A.txt) |; N6 b% K: v3 |' |0 F
abc\t20. ^$ Z7 H' f/ \7 P" m1 s7 v* W
a\t30( ?$ z% w1 h: S: i# |3 b
de\t50
4 _( V$ M" Y/ q' g# H. j输入为:10' g5 b" A8 N. J. K+ V! k" A0 Q" E9 I+ P
7 h/ t. e# _4 A1 R: N/ b
即 abc有20%的概率输出,a有30%的概率输出,de有50%的概率输出,输出10条记( |" @( |" ^7 B' f

" ?5 ^6 u: ?+ _: T3 ^. e
0 R! B  C3 R: ~# v5 W0 e/ P/ O以下为一次输出的结果,多次输出的结果可能不相同。  o3 T( |9 Y$ h& R; _- C9 \$ g
abc
4 o1 N- G. d1 x- W8 N* Fa
4 D, [* A$ I5 o1 fde
( J; T: w) g' tde$ N+ W8 s1 \& K- P( p' h( c: s/ ^
abc. `6 B# ]  p% z$ b; Q. _* t
de, I5 V8 z- U9 H' U
a" _: u7 e4 m7 @4 w
de
  d; Q3 p3 B- r! _% _a+ m4 f; J1 w2 w4 d, Q
de
* N6 x6 P, v! ?! d$ L( l# b, |; c) Z) K
二、算法题(35分)
6 v- F, D$ W6 Y0 ^9 Z3 j- S题目描述:! m0 f. J7 n8 u+ b, O6 D" X! k- ^
设有n个正整数,将它们联接成一排,组成一个最小的多位整数。7 l" c" m4 S! A
6 |+ F5 X. _# f: H% M2 U
程序输入:n个数
3 i1 b! Z; Q2 G& q# E程序输出:联接成的多位数& ^0 `( J) M% n$ U  n! ]

% D, F: V5 I3 T' f3 P2 ]例如:" ^% D  X# M3 ^9 I
n=2时,2个整数32,321连接成的最小整数为:32132,
: `! m" b6 R' w$ m7 E# a0 ]n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355+ n. }4 F" k7 V& U! W, S* H: J
/ V6 m& v. m$ ^1 k, M; E4 B
[题目要求]9 {; }) W3 R6 }" x: m  z. y
1. 给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算
6 j+ [: _3 F- V% d+ v$ s1 v& d# m" ?# T9 e6 A$ G$ L
法。! h  q" K8 F" h, Y
2. 给出算法的时间空间复杂度。
8 t  F- x3 n  E0 C; c3. 证明你的算法。(非常重要)
' T" o! t) W6 W4 ^2 o* n
/ y' w6 L& L: l5 ~& ?* n& U三、系统设计题(35分); ?% M" l# G$ v+ ^& ]' V6 P1 @3 E
在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概
: C$ \+ l1 P: D2 }
- a" H1 v8 K, L1 I7 q3 N# |5 n: J& w/ L5 Q8 X/ h
1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简
& I/ m( g. W9 ~/ j# i" o" I# B: q5 {9 d
写为uid);则uid的范围是从1到1000万的正整数。
) T4 d1 W4 n+ Z5 W( k4 O8 M) v2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的- [: Y, P. o$ T3 U  @6 b
9 V0 s. y$ s/ M- @+ x6 ^6 L5 \
两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以& @% M7 a9 y7 T& s; f# k
$ q2 R3 \+ x: C# [! `3 {
被解除
' E8 K& A  f' z( H. v% I3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发
1 G% r% c" W+ I# a* G2 l; k/ p# p0 a  r1 v
表的文章;每篇文章通过一个blogid表示。
- Z1 g# r9 d! Q4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系5 q! P% Q! O! C0 l7 [
3 |1 h9 v# g! Y! @7 q/ o/ W5 e
统中就是所有好友的文章更新列表。
. G! Q0 Z. i9 g0 a; d% z7 {7 b5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百
, l( |: ~9 Q0 R9 ?" w( \* n& K; r# e
& J: |. v1 ~, o* x2 d& O. _万量级。+ i+ ]: Y" t2 x- a+ j$ W

# O1 m5 W; P' H5 n# V0 N' ]题目:请在以上限制条件下,设计一个高效的feed访问系统。; I  {: W; O) j9 v

7 r7 F7 x$ z/ G0 f要求:, Y" K# a+ i/ ^" \
1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed
1 u3 w( i" S: ?" E# C" `3 I0 d) r( [
. i# L) w7 g) c* q, _;feed的展现按照时间倒排序,最新的在最前面( Q* n- J; y% Y/ J4 e. c4 I
2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友  q/ ?4 m. J' T

2 V. A# k+ L0 s) w* o% z& C6 Nfeed都是未被删除的
% P; ?6 b7 t& F9 y3、尽可能高效。' Z& M# R3 @, V2 }+ [

7 |$ U/ o' q6 j9 L6 g. D6 S+ _百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html
; v! A3 _6 a# |2 {百度历年实习生招聘真题:http://bbs.aftjob.com/thread-606504-1-1.html& R# b0 H; Q, E* d- e
百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html: L: k. [1 T' s- g2 @% B
百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html
您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

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

GMT+8, 2026-9-18 11:12

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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