2021.12.01 米哈游前端笔试
1.10道单选题,考察css,js基础,但不知道为什么还有c语言的题,不太理解
2.三道编程题(全部ac)
1)有三个数字数组,求每个数组中的最大值,并将这三个值降序排列作为一个数组返回。
图省事就直接sort()了,限定ts语言,但我不会ts,直接js写的,也通过了
function max(a, b, c){
a.sort((a,b) => b-a);
b.sort((a,b) => b-a);
c.sort((a,b) => b-a);
return [a[0], b[0], c[0]].sort((a,b) => b-a);
} 2)给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔
力扣原题吧,https://leetcode-cn.com/problems/0on3uN/,同样限定ts,我还是js😂
var restoreIpAddresses = function(str) {
let list = [], l = str.length;
// 直接暴力分割
for (let i = 1; i < 4; i++) {
for (let j = i + 1; j < i + 4; j++) {
for (let k = j + 1; k < j + 4; k++) {
let a = str.slice(0, i);
let b = str.slice(i, j);
let c = str.slice(j, k);
let d = str.slice(k, l);
if (check(a) && check(b) && check(c) && check(d)) {
list.push(a + '.' + b + '.' + c + '.' + d)
}
}
}
}
return list;
function check(s) {
let n = parseInt(s)
if (n + '' != s) {
return false;
}
if (n >= 0 && n <= 255) {
return true;
}
return false;
}
}; 3)给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 同样力扣原题,hard程度🤐,还好我做过;限定js了,不懂为啥限制前两题语言
var calculate = function(s) {
const ops = [1];
let sign = 1;
let ret = 0;
const n = s.length;
let i = 0;
while (i < n) {
if (s[i] === ' ') {
i++;
} else if (s[i] === '+') {
sign = ops[ops.length - 1];
i++;
} else if (s[i] === '-') {
sign = -ops[ops.length - 1];
i++;
} else if (s[i] === '(') {
ops.push(sign);
i++;
} else if (s[i] === ')') {
ops.pop();
i++;
} else {
let num = 0;
while (i < n && !(isNaN(Number(s[i]))) && s[i] !== ' ') {
num = num * 10 + s[i].charCodeAt() - '0'.charCodeAt();
i++;
}
ret += sign * num;
}
}
return ret;
}; 3.前端需求题(秒了) 实现图片上的页面布局,可以原生,也可以利用框架,功能要求也要实现
这不是撞枪口上了吗?实习的时候写过导航树,用过element-ui,这不就是element-ui的el-tree组件嘛哈哈哈😂
具体大家看官方文档吧,我就不献丑了:https://element.eleme.io/#/zh-CN/component/tree
