首页 > 代码库 > 再现9月20号今天的百度笔试题

再现9月20号今天的百度笔试题

一  简答题

1、进程和线程有什么区别?(到处都在问这个问题)

2、简诉数据库的存储过程及其优点。(我实习的时候就是一直在写存储过程,所以)

3、全局static变量和普通全局变量区别?static局部变量和普通局部变量的区别?static函数和普通函数的区别?

二 算法与程序设计题

1、编码实现函数

 void* memcpy(void* des, void* src, int len)
2、有这样一个二维矩阵A[N][N],满足j < k时, 1)a[i][j] < a[i][k]; 2)a[j][i] < a[k][i](其实就数据从左上角到右下角纵横方向上都递减),给定一个数target,如何快速搜索是否在这个矩阵中,是的话输出二维坐标,否则输出Null;

3、实现一个stack,要求要有min函数实现,该实现复杂度要求O(1)。


三 系统设计题

情景:新浪微博发布内容要求字符不超过140,但是用户如果在发布内容中有很长的url时,会认为是很多字符。所以新浪上发布内容包含一个URL时,时把他压缩成一个TinyURL(缩小)。比如:

输入:http://zhidao.baidu.com/search?ct=17&pn=0&tn=ikaslist&rn=10&word=helloworld&ie=utf-8&fr=wwwt

实际显示:http://asdfa.cn/ak78ss。(这里我只是随便举了个例子)

前面asdfa.cn是对应域名 zhidao.baidu.com,后面长长的字符串被压缩成ak78ss。

现在让你来设计TinyURL的实现,一下问题要怎么设计:

问题一:域名后面的编码如何实现?

问题二:对于已经映射过的一个URL,怎么查找已存在的TinyUrl?

问题三:有10亿个url,一个服务上存不下,需要多台服务器,怎么设计实现?

再现9月20号今天的百度笔试题