爱奇艺游戏服务器开发 笔经

题型分为选择题(20道)、编程题(3道)和问答题(1道)。
选择题:多数为Linux/C/C++/Golang,看得出来爱奇艺的技术栈了,C/C++还行,勉强能蒙,Golang基本没接触过,完全靠蒙
编程题:三道,较为简单(大概就是简单到中等难度)
问答题:北斗卫星定位原理,算是考查数学、物理和天文常识吧

编程题1:输入一个正整数n,输出n!(阶乘)末尾有多少个0
思路1:暴力法,直接求出n阶乘,然后求末尾有多少个0——不用想,肯定timeout
思路2:末尾有0,那必然是质因子里有2和5导致的,显然2的个数比5多,本质上就是求1~n中5的倍数的个数,同时我们观察到,25(5的2次方)会贡献两个0,125(5的3次方)会贡献三个0,由此可以猜测5的n次方可以贡献n个0
则实际上答案就是n/5+n/(5^2)+...+n/(5^k),直到n/(5^k)==0
代码:
n = int(input())
res = 0
while n:
    res += n // 5
    n //= 5
print(res)
100%AC,复杂度仅为logn

编程题2:走格子,起点坐标为(0,0),输入一个由'N' 'S' 'E' 'W'组成的字符串,分别表示向北、南、东、西走一步,求走的过程中是否走到了曾经到过的点
思路:非常简单,用一个set记录曾经走过的点,每走一步判断这一步的点是否已经存在在set中即可
逻辑非常简单,这道题就不上代码了

编程题3:输入一个仅由[](){}六种字符组成的字符串,判断该字符串里的括号是否都合法
括号合法有两重含义:
1. 左右括号的数量至少要相等
2. 左右括号要匹配,比如([]{})是合法的,({)}是非法的
思路:括号匹配的题,一般都用栈解决
遇到左括号入栈,遇到右括号出栈,出栈的时候检查右括号是否和栈顶的左括号相匹配,不匹配则说明不合法;
遍历完后,如果栈不为空,则说明有括号落单,不合法,否则合法
同时还可以有一些剪枝操作,比如判断字符串的长度为奇数,则一定不合法
同样逻辑非常简单,有空再补个代码,晚上还有鹅厂的笔试😪
#笔试题目#
全部评论

相关推荐

看网上风评也太差了
投递万得信息等公司8个岗位 >
点赞 评论 收藏
转发
1 3 评论
分享
牛客网
牛客企业服务