2018网易校招前端开发工程师笔试卷讨论
又是一年校招季,实习面试对于2019届的我们已经越来越近了,做了两次笔试试水,感觉还是没有十足的把握完成笔试卷,任重道远啊。
来看看这次的笔试题吧。
单选,20题(40分)
- CSS
- HTML5(新特性的考察)
- JS(this,setTimeout,typeof,window对象)
- 数据结构(链表,栈,二叉树)
- 操作系统
- 正则表达式
- 计算机网络
- 设计模式
- 算法(排序算法(二分查找算法),空间复杂度)
编程:3题(60分)
一、单选题
Types: CSS
Question: 下面哪一个不是伪元素选择器?
Choices: before : first-line : behind : first-letter
Thinking:
选择器 | 示例 | 事例说明 |
---|---|---|
:link | a:link | 选择所有未访问过得链接 |
:visited | a:visited | 选择所有访问过得链接 |
:active | a:active | 选择所有正在活动的链接链接 |
:hover | a:hover | 鼠标在链接上 |
:focus | input:focus | 选择元素后具有焦点 |
:first-letter | p:first-letter | 选择每个元素的第一个字母 |
:first-line | p:first-line | 选择每个元素的第一个行 |
:first-letter | p:first-child | 选择器匹配属于任意元素的第一个子元素的 元素 |
:before | p:before | 在每个元素之前插入内容 |
:after | p:after | 在每个后插入内容 |
:lang(language) | p:lang(it) | 为元素的lang属性选择一个开始值 |
Types: 操作系统
Question: 某计算机系统中有12台打印机,由K个进程竞争使用,每个进程最多需要4台打印机。该系统可能会发生死锁的K的最小值是 () 。
Thinking: 最坏情况每个进程卡3台,4个进程全部卡死
Types: 正则表达式
Question: 下面可以匹配 《img src=”http://img.163.com”>
Thinking: 《img src=”[^]*”>
特别字符 | 描述 |
---|---|
$$ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 |
( ) | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。 |
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。 |
+ | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。 |
. | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。 |
[ | 标记一个中括号表达式的开始。要匹配 [,请使用 [。 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 |
\ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\’ 匹配 “\”,而 ‘(’ 则匹配 “(“。 |
^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。 |
{ | 标记限定符表达式的开始。要匹配 {,请使用 {。 |
Type: 计算机网络
Question: 下面不属于TCP协议拥塞控制部分的是
Thinking:
Type: HTML5
Question: 下面不属于HTML imput元素种类的是
Thinking:
Type: 设计模式
Question: 下面意图那个是用来描述ADAPTER(适配器)?
Thinking:
将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容 而不能一起工作的那些类可以一起工作。
Type: 排序算法
Question: 将一个整数序列整理为升序,两趟处理后序列变为10,12,21,9,7,3,4,25,则采用的排序算法可能是?
Thinking:
将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容 而不能一起工作的那些类可以一起工作。
Type:多线程
Question:下面关于进程和线程的关系不正确的是:
Choices:
i.线程可以通过相互之间协同来完成进程所要完成的任务
ii.线程是进程的一个实体,可作为系统独立调度和分派的基本单位
iii.线程之间不共享进程中的共享变量和部分环境
iv.一个进程中多给安城可以并发执行
Thinking:
请大神赐教..
Type: this
Thinking:
https://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/
Type: Window对象
Question: JS中window对象的子对象不包含以下那个对象?
Thinking:
属性 | 描述 |
---|---|
closed | 返回窗口是否已被关闭。 |
defaultStatus | 设置或返回窗口状态栏中的默认文本。 |
document | 对 Document 对象的只读引用。请参阅 Document 对象。 |
history | 对 History 对象的只读引用。请参数 History 对象。 |
innerheight | 返回窗口的文档显示区的高度。 |
innerwidth | 返回窗口的文档显示区的宽度。 |
length | 设置或返回窗口中的框架数量。 |
location | 用于窗口或框架的 Location 对象。请参阅 Location 对象。 |
name | 设置或返回窗口的名称。 |
Navigator | 对 Navigator 对象的只读引用。请参数 Navigator 对象。 |
opener | 返回对创建此窗口的窗口的引用。 |
outerheight | 返回窗口的外部高度。 |
outerwidth | 返回窗口的外部宽度。 |
pageXOffset | 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 |
pageYOffset | 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 |
parent | 返回父窗口。 |
Screen | 对 Screen 对象的只读引用。请参数 Screen 对象。 |
self | 返回对当前窗口的引用。等价于 Window 属性。 |
status | 设置窗口状态栏的文本。 |
top | 返回最顶层的先辈窗口。 |
window | window 属性等价于 self 属性,它包含了对窗口自身的引用。 |
screenLeft screenTop screenX screenY | 只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。 |
Type: 二分查找算法
Question: 下面那个数据结构不能使用二分查找算法?
Choices:
i.sorted linear array
ii.sorted linked list
iii.sorted pointer array
iV.sorted binary trees
Thinking:
二分查找算法需要在有序地线性表中使用
Type: setTimeout()
Question: 代码执行结果为?
setTimeout(function() {
console.log(1);
},100);
setTimeout(function(){
console.log(2);
},0);
console.log(3);
Thinking:
3
2
1
二、算法题
Question:
彩色砖块
小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。)
例如: s = “ABAB”,那么小易有六种排列的结果:
“AABB”,”ABAB”,”ABBA”,”BAAB”,”BABA”,”BBAA”
其中只有”AABB”和”BBAA”满足最多只有一对不同颜色的相邻砖块。
输入描述:输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s中的每一个字符都为一个大写字母(A到Z)。
输出描述:输出一个整数,表示小易可以有多少种方式。
//题目出的很误导人,其实意思就是判断给出的字符串中有多少种不同种类的字符,超过两种就是0,两种就是2,一种就是1
while(line = readline()){
//存取题目给出数组
// var arr = "AAA";
var arr = line.trim().split('');
//存取数组中的不同元素
var check = [];
for(var i = 0;i < arr.length;i++) {
if(check.indexOf(arr[i]) == -1) {
check.push(arr[i]);
}
}
var length = check.length;
if(length == 2){
console.log(2);
}else if (length == 1) {
console.log(1);
}else {
console.log(0);
}
}
Question:
01串的最长子串求取
如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: “1”,”10101”,”0101010”都是交错01串。
小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。
输入描述:输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只包含’0’和’1’
输出描述:输出一个整数,表示最长的满足要求的子串长度。
//直接遍历整个字符串,记录每次的长度,并取最大值
while(line = readline()){
var str = line.trim();
var len = str.length;
if(len<=1){
console.log(len);
}else{
var k=1;
var max=1;
for(var i=0; i<str.length-1; i++){
if(str[i] !== str[i+1]){
k++;
}else{
k=1;
}
if(k > max){
max = k;
}
}
console.log(max);
}
}
Question:
独立的小易
小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。
输入描述:输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割
输出描述:输出一个整数, 表示小易最多能独立生活多少天。
//注意分两种情况,水果够吃和不够吃,不能使用循环,任务量过大会超时
while(line = readline()){
var lines = line.trim().split(' ');
var arr = lines.map(function(item){
return parseInt(item);
});
var x = arr[0],
f = arr[1],
d = arr[2],
p = arr[3];
if(Math.floor(d/x)<=f){
console.log(Math.floor(d/x));
}else{
console.log(Math.floor((d-f*x)/(x+p))+f);
}
}
总结
总的来说,本次笔试题的难度相对之前的前端实习招聘笔试来说更为简单,最后的三个大题都是网易17届的题目,估计是云音乐事业部扩招了,那么希望就更大了嘿嘿。
希望明年3月的实习面试的时候,能够游刃有余,加油。
上一篇: python SSH模块登录,远程机执行shell命令实例解析
下一篇: 姜茶祛湿吗,你知道答案吗
推荐阅读