首页 > 其他 > 详细

2015百度校招笔试杭州站

时间:2014-09-27 00:29:40      阅读:284      评论:0      收藏:0      [点我收藏+]

1:请描述数据结构中栈和队列的区别。并说出3个操作。

答:栈先进后出。队列先进先出。例如(pop() push() empty() back() front());

2:请描述一下C++中多态。举个例子:

我学java的。但我记得多态应该是重载和重写。

重载
Class A
{
    int foo(int a){...}
    int foo(int a,int b){...}
}

重写
Class A
{
    int foo(int a){ return a}
}
Class B:A
{
    int foo(int a){return -a}
}

3:请描述下TCP四次挥手。并说下Time_wait的作用。

四次挥手的图我画对了。但发的包名称乱说了。。。Time_wait我以为是等待时间。时间到了就默认关闭的样子。。。

网上答案:
1。防止上一次连接中的包,迷路后重新出现,影响新连接
  (经过2MSL,上一次连接中所有的重复包都会消失)
2。可靠的关闭TCP连接
  在主动关闭方发送的最后一个ack(fin) ,有可能丢失,这时被动方会重新发
  fin, 如果这时主动方处于CLOSED 状态 ,就会响应rst 而不是ack。所以
  主动方要处于TIME_WAIT 状态,而不能是CLOSED 。
TIME_WAIT 并不会占用很大资源的,除非受到攻击。
还有,如果一方send 或recv 超时,就会直接进入CLOSED 状态

二编程题

1:写个能将整篇文章单词翻转的程序。不允许使用任何函数。这个ACM题库里有不说了。

2:最长递增子序列:

这道题当场傻逼了。不过印象里是dp用LCS做的。后来一直傻逼。暴力做了。。。

其实是把源串排序用排序后的串和源串求LCS。傻逼了

bubuko.com,布布扣

3:写个有限状态机。获得C++代码中所有的注解。

bubuko.com,布布扣

三:系统设计:设计一个同时在线用户量为1亿时。程序要随时能够更新游戏的排名、用户要能查到自己排名。

我设计:

1:根据用户排名设计哈希算法。把1亿用户的数据映射到1W个文件中。这样每个文件有1W的用户。文件加上排名索引。

2:读写分离。即存系统和读系统分离成两部分。

3:用户读取数据时先按索引查到用户当前分数大致的排名文件。再在文件中进行查询。

4:存,因为存不是特别好控制。插入文件后更新所有文件的索引。但可能某个文件会变得特别大。当1个文件的用户量到达2W时候分裂文件。


后记:以上东西不一定正确。但我觉得我一个渣渣大学的本科生。能与这么多研究生在一个考场里笔试还是蛮爽的。继续找工作ing....

2015百度校招笔试杭州站

原文:http://blog.csdn.net/leejuen/article/details/39588265

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!