深信服C++提前批一二面凉经
一面线上(2024/6/22 18:40)
1. 自我介绍
2. 项目碰到的难题
3. 两个场景题
🤓实现类似wps上的单词拼写:
:我不是很清楚单词组合的通用规矩,怎么判断合法?不过英文单词不多,可以考虑存哈希表
—— 英文单词有很多,几百万个呢
:有这么多吗?(不过要存也就数十兆吧,然而明显不是面试官想听的,得再说点)
那先解决一些简单的问题,可以先处理下特殊字符,比如除了大小字母外的其他字符,另外,混在单词中间的大写 字母,这两种情况都可以O(1)复杂度解决掉,然后...至于最主要的单词是否合法的判断,我暂时还没想到
—— 我们有合法的单词表
:哦哦,那还是查表,可以由远端来查?
—— 由服务器来做?
:是的,因为查表本身只需要O(1), 主考虑传输成本。
🤓实现文档的云端同步,文档很大,你怎么做
:分块处理,建立分块索引,
—— 云端怎么知道是追加、删除、修改?
:可以在本地判断,添加标志位,跟云端同步时提供块号、标志位设置0,1,2,分别表示追加、删除、修改,追加长度 用一个正数记录,删除长度用负数,对于修改,追加一个修改内容,然后云端对相应的块做相应操作。
—— 这也是一种方案,怎么定位到块内具体位置
:可以在本地建立一个一维索引,提供修改位置的一维索引,然后对块长做余运算等。
4. showmebug平台,给一段http的get请求,解析键值对。用stringstream和getline()
5. 学习方法
6. 规划
全程30分钟出头,场景题大概占了一半时间。
二面线下广州大学城酒店(2024/6/26 14:40)
1. 自我介绍
2. 讲讲第一段实习,
为什么要做这个项目?—— 设计模型和数值仿真?当时实习的时候文档上倒是没有介绍。
那你认为意义是什么?——重复了一遍。
( 问问答答十五分钟吧。)
代码是你写的吗?——是我写的啊。
那写一下代码,用你熟悉的语言 —— (写什么都行,我说写力扣LRU吧)在纸上写LRU,不习惯,写了将近十五分钟?
力扣刷了多少题(笑) —— 额,刷过两百多道,但实际上精刷的也就一百题左右,我会比较注重掌握每道题不同解法 的复杂度分析和特点 。
点点头,没有考察算法了。。
3. 场景题一:
知道ssd吗? —— 知道的,就是一种高速硬盘。
对,你知道硬盘是有寿命的,如果我这里有一块硬盘坏了,你会怎么做,或者说你怎么分析?—— 嗯,我会首先考虑 硬盘的交换空间,比如查看内存与硬盘是否一直存在频繁的交换,这种情况下可以考虑升级内存。
(否定)我们服务器一般不会出现内存不足的问题,你不用想的这么复杂(大概这个意思),你不是很理解我的问题,就比如说客户跟你说硬盘坏了,你怎么解决? —— 额。。根据我的了解,还是看进程的交换空间,看是否存在频繁交换吧?
看进程你一天都看不完(否定)
(扯了十几分钟,最后他说,先看日志,比如客户可能存了很多A篇?还是哪个软件写溢出。。。看进程一天都看不完)
场景题二:
网页页面上有很多板块,某些板块显示不全或者不显示,你觉得是什么问题?—— 首先考虑服务端这边,是否存在资 源传输的问题,比如大文件传输,就有可能是因为多次调用writev函数但iov指针没有偏移,一直重复传输大文 件的第一部分,导致浏览器收不到后续资源; 其次是浏览器渲染问题(巴啦啦)。
4. 反问环节:对于我如何改进,给一些建议? —— 思维太发散了,听着听着不知道讲到哪里去了(指实习和硬盘问题),我不知道是不是程序员都这样,当然这有好有坏,如果是工作中,这样可以考虑得更周到,但是在面试中,短时间内面试官不能更好的了解你....
"回去等消息 "
#深信服#