- 这次参与字节的笔试感觉字节毫无准备,也不知怎么准备,总体而言,自我感觉好糟,单选和不定项都不太懂,因为还没背八股文,另外两道编程题,还好这两道没有要求规定只能使用某种语言。所以我最终都是用C++解决的,对于C++较熟悉,本来打算用JS进行实现,但是发现不会用ACM模式,虽然有实例可以参考,但是对于输入也不太懂,所以接下来还是得刷一下如何在ACM模式下运行JS。ACM模式下JS有两种模式,不同模式对于输入和输出都是不太一样的。
- 下面是我对此次字节前端笔试的一点记录,可以回忆一下自己哪些不会,以及预防在面试过程中会再次问到相关知识(虽然不知到能否通过笔试www)。
- 此次的笔试一共分三种题型:单选(10道),不定项选(5道),编程题(2道)
- 单选(下面只是记住了题目的大概)
(1)http和https的相关
(2)POST和GET有关
(3)visibility:hidden和display:none的有关
(4)下列中自结束标签的是
(5)下面中结果为false的是:
A. []==0;
B. ''==0;
C. 'true'==new function(){
return new String('true');
}
D. 'true'==new function(){return String('false');}
(6)下面哪些选项的排序算法具有稳定性(选项是什么就不记得了)
这里写一下哪些排序算法是稳定哪些是不稳定的:
稳定算法:冒泡排序、插入排序、归并排序、基数排序
不稳定算法 :选择排序、快速排序、希尔排序、堆排序
因为先做单选和不定项选择最后才做编程题,而且只有该题型提交后才可以选择其他题型,所有最后做完两道编程题后前面的基本不太记得了。
编程题:(两道编程题都比较简单)
第一道:打怪兽有关的
大概意思就是用户击杀一次怪兽可以获得增益buff,增益持续时间为duration,如果还没到达增益时间结束时间时又再一次击杀怪兽时,则duration清除,进行重新保存这次获取到的增益buff所能持续的时间,最终需要求得的是buff能持续的总时间,其中timeSeries[]用于存储用户在第几秒击杀怪兽,duration[]用于存储击杀后buff对应能持续的时间
输入要求:第一行输入N,表示timeSerie[]和duration[]数组的长度,两者长度是一样的;
第二行输入N个数字,每个数据用空格分隔,表示用户第几秒击杀怪兽(已根据先后顺序排好了)
第三行输入N个数字,每个数据用空行分隔,表示每次击杀后对应的增益buff能持续的时间
测试用例:
输入用例:
2
2 4
3 4
结果输出:
6 // 第2秒到第4秒一共两秒,虽然第2秒产生的增益可以持续3秒,但是第4秒击杀后则会重新按照新的增益持续时间进行计算,所以 6 = 2+4
测试用例2:
输入:
3
1 3 6
2 2 3
输出:
7
第二道:有效集合
有效集合指的是一组整型数据中存在任意一个数是其他数据的前缀。
大概意思就是第一行输入整数N,表示测试示例的组数
接着循环输入N组数据,每组数据第一行输入T表示该组数据用例包括多少个整数,随后T行表示T个整数
要求是判断每组数据是否为有效集合
有效集合则输入YES,否则为无效,输入NO
测试例子:(下面例子是自己想的)
测试用例输入:
3
4
1223
234564
34567987654
122345678765
2
12
1222234
1
34
结果输出:
"YES"//因为1223是12345678765的前缀
"NO"
"NO"