搜狗2021校园招聘笔试攻略!
搜狗简介
搜狗是搜狐公司的旗下子公司,于2004年8月3日推出,目的是增强搜狐网的搜索技能,主要经营搜狐公司的搜索业务。在搜索业务的同时,也推出搜狗输入法、搜狗高速浏览器。
搜狗2021校园招聘流程
网申开放: 2020年8月6日-9月30日
线上宣讲: 2020年8月25日
线上笔试(以笔试通知为准) ;
第一场: 2020年9月5日
第二场: 2020年9月25日
面试时间: 2020年8月-10月
Offer沟通:2020年9月-10月
开放岗位
【开发岗】
C++/前端/Java/测试
后端/i0S
大数据/数据仓库开发
深度学习平台开发
高性能计算开发
Hadoop/运维等
【算法岗】
推荐算法
自然语言处理
语音/图像
算法等
【产品岗】
产品运营
各大互联网名企真题,可在职题库APP打开查看
官方笔试例题
1. 核 子 聚 变
请设计一个程序,在规定步数内,成功的使得一个原子核队列完全湮灭。
7种原子核(用A-G表示),排成一条直线队列,在初始状态下它们是稳定的。
如果我们发射一个额外的原子核插入到队列,如果插入的位置没有形成大于等于3个相同的原子核的序列,那么队列继续保持稳定。
如果该位置上相邻的三个或以上的原子核种类相同, 就会诱发聚变湮灭成能量散失;然后队列上剩下的左右两半会受外部压力重新拼接在一起,拼接点两侧如果类型相同,且拼接后形成三个或以上连续相同序列,则连锁反映继续聚变湮灭。
为了方便描述插入位置,假定队列长度为n,我们把对列最左端外侧位置编号为0,右端外侧位置编号为n,共有n+1个位置。
例如:
AAABC,如果把一个A插入到位置4(或位置5)的时候,队列会变成AAABAC,继续稳定存在。
AABBCCA,如果把一个C插入到位置4(或位置5,6)的时候,会形成3个C,之后3个C会湮灭,队列变成AABBA,重新恢复稳定。
BAABBCCBACCB,一个C色球插入到位置5(或位置6,7)的时候,会触发连锁反应消去的过程如下("+"表示拼接点):BAABB+C+CCBACCCB=>BAABB+BACCCB => BAA+ACCCB => B+CCCB => BCCCB (稳定)
注意最后剩下3个连续的C,是因为最后一步拼接时,拼接点左右类型并不相同,不会触发连锁反应。
每在队列中新插入一个原子核,记为一步;每一步可插入任意类型的原子核。
本题给出1)初始的队列,2)要求在几步之内达成完全湮灭。
要求选手给出一个消去过程,将所有的原子核都聚变湮灭。该过程必须在给定的步数上限之内完成才算正确。
请选手注意,本题并不要求最优解,只需要给出一个不超过步数上限的解即可。
解题思路
1.首先必须注意到本题要求在若干步数内完成消去,并不需要求得最小步数的最优解,因此追求最优解的思路是不可取的,且会耗费大量时间。
2.部分同学可能会陷入错误的动态规划解法,例如网上的一些文章所述:
https://blog.csdn.net/zzzong_zzc/article/details/46835477
但这种动态规划解法并不正确。例如:
CAACBBC
对上边的序列,这种错误解法的症结在于,消去A或者B之后,端点的C就会和内部的C结合到一起,并不满足动态规划的每一步和后续步骤无关的假设。
3.本题的具体case可以用搜索或者贪心法解决。无论如何,都可以对当前的状态进行判定,利用启发式规则获取收益较大的搜索状态。对于一般的搜索,可以取当前长度较短的序列有限扩展,对于贪心法,可以取最大收益的回文串。
4.本题如果使用搜索,一般并不需要判断新状态是否和旧状态重复。因为消去规则一般都是有收益的。这样可以极大简化代码的复杂性。
5.由于32M内存的限制,具体解法必须舍弃大部分收益小的状态。
试题考察点
1.状态搜索,贪心法,动态规划等优化方法,以及适用条件;
2.计算机科学的算法设计能力;
3.较高的代码正确性要求;
4.根据投入和收益,权衡能够得分最高的解决方案。实际只要写出基本的贪心法或者暴力搜索,只要程序正确,就可以通过60%的case。