腾讯秋招面经(WXG一面+面委一面+面委二面)

一面

4道算法题

时间50分钟

  1. atoi实现
  2. 求字符串能分割成的所有ipv4地址
  3. 链表逆置
  4. 有一个均匀生成0-65535的随机数rand(),实现从30W(编号为1-300000)人抽10W人。

前三题都是比较常见的题,第四题之前没遇到过,本质上是要用一个小的随机数生成大的随机数,不知道正确的做法应该是怎么样的。当时想了一个办法,就是用rand()来生成两个3位数a和b,再用a和b生成一个六位数a*1000+b,这样可以保证每个数字生成的概率是相同的,然后就可以随机生成1-300000了,后面只需要用个set做一下去重就行了。

基础知识

  1. 三次握手四次挥手
  2. 滑动窗口
  3. 问我有没有做过网络编程相关的项目,表示并没有
  4. 问了一下我libco相关的东西,我已经不会了,后面就扯到了实习上去了
  5. 介绍了一下实习的项目

聊天

然后后面介绍了一下部门,聊了聊天,问了一下我对工作城市的喜好之类的,这时候才知道是WXG的一面。可能是中间带偏了,基础知识没怎么问,光聊天了,然后就结束了。

PS:中间我的信号不太好断了好几次,还好面试官比较有耐心,又给我打回来了,算法题我有一些写的不太好的地方,面试官都和我讨论了一下,还帮我找了出来,还是很nice的。

面委一面

因为面试开始的比较晚,似乎就没有写题的部分了,直接开始后面的部分,更多是一些分析设计题,有一部分已经忘记了,这里写一些记得的。

  • 在浏览器中输入url后会发生什么
  • TCP/UDP
  • 三次握手
  • 如何让UDP实现可靠传输?(其实是TCP可靠传输的一些点?)
  • 内存池设计之类的(具体记不太清楚了,我也不太懂)
  • 比赛中遇到过的最难的问题
  • 在实现爬虫的时候要注意的点
  • 一篇文章多个关键字,匹配到一个就返回true,如何去做
  • 百度搜索实现

面委二面

这次的要求是能跑通,并在本地测试样例,略微复杂一点。写了快2个小时,有点拉跨。

5道算法题

  1. 链表去掉有重复的
    例:1->1->2->3->3->4->4->5->null
    2->5->null
  2. 又是求字符串能分割成的所有ipv4地址
  3. 按照出现次数排序(降序),相同按照数字大小升序
    例:[ 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5 ]
    [ 4, 4, 4, 4, 3, 3, 3, 2, 2, 1, 5 ]
  4. 由小写字母和’+’ , ‘-’ , ‘(’ , ‘)’ 组成的两个字符串是否等效
    例:“a-(b-c+a)” 和 "c-b"等效
  5. 二叉搜索树判断是否含有两个节点和为sum

基础

总的来说问的比较深入,像我这样只知道皮毛的有很多答不上来。先让自我介绍,因为我没什么项目,所以对实习经历深入的探讨了一下,聊的比较久。

计算机网络

  • TCP三次握手
  • 为什么要三次握手(为什么要建立连接)

操作系统

  • 进程与线程
  • 进程间通信

你可能感兴趣的:(面经)