(二)各大笔试网站(牛客网、赛码网、测评网)介绍和做题技巧——以前端开发为例


进行笔试之前,我们首先要了解的是,我们春招、秋招的时候,企业用的是什么平台。

因为每一个平台的代码输入规则不一样。据我了解,一般企业会用到以下几个平台:

  • 牛客网:腾讯、美团等一众大中小厂
  • 赛码网:360、顺丰、字节等一众大中小厂
  • 其他小平台或自建平台:测评网、阿里、三七互娱

一般来说,企业会选择前两个比较大的求职平台作为笔试的合作方。所以,我们基本上只需要了解前两个平台的玩法就可以了。

至于前端开发,会有一些问答题,比如根据描述,写一段 CSS、HTML,实现某个效果。这种题比较简单,根据所学知识写清楚就可以了。

这篇文章重点是前端开发中遇到编程题,解决测试用例的输入问题。

牛客网

牛客网成立于 2014 年 9 月,产品矩阵包括 IT 题库、在线编程练习、线上课程、交流社区、竞赛平台、笔面试服务。

简单地说,笔试面试之前,我们可以在牛客网上刷各种题,拿前端开发来说,包括 js,html,css,算法,计算机网络,计算机基础,甚至包括智力题,逻辑题都可以在牛客网上刷。

当我们进行笔试的时候,企业会给我们发送一个牛客网的试题链接,电脑会开启摄像头,录制我们答题的过程,以防作弊。

牛客网还可以进行远程视频面试。当你看到面试官时,面试官也在看着你。当着面试官的面,手撕代码了解一下?

除了刷题、笔试、面试,牛客网还有交流社区,上面有很多面经,甚至交友的帖子。上面的人说话好听又搞笑,超喜欢牛客网的沙雕们,上一个炫耀帖给予大焦虑后有段子作伴,痛并快乐着。

刚开始我不知道牛客网这个神器,了解了它的功能后,找工作大那段时间,几乎每天都会上去刷一下。

介绍了牛客网是干嘛的,那么最主要大问题是刷题大时候最需要注意的是什么呢?

答案是:输入。

在做题之前,我们要保证写的代码正确读取了测试用例的输入。否则,即使我们的代码是正确的,平台进行验证的时候也会判定是错误的。

如上图所示,我们打开牛客网上的一道编程题,右边是代码输入模块。可以选择各种语言做题,前端有两个选择,一个是基于 V8 环境,另一个是基于 node,两者的区别在于读取测试的输入规则不同。

直接上代码:

  • JavaScript (V8 6.0.0)

牛客网提供了 readline() 函数,不用填写任何参数,每执行一次,就读取一行。多行输入其实就是写多个 readline()。

【多行输入的 图 】

// 单行输入
// 0 1


while(line=readline()){ // readline 得到的是字符串
    let parameters = line.split(' ');
    let a = parseInt(parameters[0]); // 单行第一个参数 转化成了数字
    let b = parseInt(parameters[1]); // 单行第二个参数 转化成了数字
    print(a+b);
}


// 多行输入,且行数确定
// 2
// 0
// 1

let K = parseInt(readline()); // 读取行数
let inputs = [];
for(let i = 0;i < K; i++){
    line = readline()
    inputs.push(line)
}

function func (inputs){ // 得到 inputs 后,用函数处理
    console.log(results)
}

func(inputs)


// 多行输入,但行数不确定
// 2
// 0 
// 1

let A = parseInt(readline()); // 多写一行读取提示性输入
let inputs = [];
while(line = readline()){
    inputs.push(line)
} 
console.log(inputs)

function func (inputs){ // 得到 inputs 后,用函数处理
    console.logh(results)
}

func(inputs)
  • JavaScript(Node 6.11.4)
// 单行输入
// 0 1
let readline = require('readline');
const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout
});

rl.on('line', function(line){
    let parameters = line.split(' ');
    let a=parseInt(parameters[0]); // 单行第一个参数 转化成了数字
    let b=parseInt(parameters[1]); // 单行第二个参数 转化成了数字
    console.log(a+b);

});


// 多行输入,且行数确定
// 2
// 0 
// 1
let readline = require('readline');
rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let K = 2; // 输入 K 行
let inputs = []; // 存储输入 
rl.on('line', function(data) {
    // 获取输入
    inputs.push(data);
    if (K == inputs.length) { //
        // 处理
        let result = func(inputs);
        // 输出结果
        console.log(result);
        // 清 0
        inputs.length = 0;
    }
});

function func () {} // 处理输入的函数(算法)


// 多行输入,不确定输入行数
// 1
// 2
// ......
let readline = require('readline');

rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let inputs = [];
let num = 0;
rl.on('line', function(data) {
    if(num == 0){
        num = Number(data.trim());
    } else {
        inputs.push(data.trim());
        if (num == inputs.length) {
            // 处理
            let result = func(inputs);

            // 输出结果
            console.log(result);

            // 清 0
            inputs.length = 0;  // 不可改动
            num = 0;    // 不可改动
        }
    }
});

function func () {} // 处理输入的函数(算法)

最后,需要注意的是牛客网上的题可以由公司在题库中选,这部分题一般不会出现多个空格或者换行符的。也可以由公司员工重新出的题,他们填写测试用例的参数时,可能会误操作,多打一些我们看不见的字符。所以,做题的时候留个心眼,数字就处理成数字,过滤字符串前后空格。

赛码网

赛码网的输入方法和牛课网类似,只不过把 readline() 这个函数,换了一个名字:read_line()。下面看 V8 环境下的基本用法,赛码网也有 Node 环境,和牛客网的方法一致,不再赘述。

``` // 单行输入 // 0 1 while(line = read_line()){ line = line.split(' '); print(parseInt(line[0]) + parseInt(line[1])); // 输出结果 }

// 多行,无论行数确定与否

let first_line = read_line();// 如果有多余的提示性字符,可以过滤 let inputs = []; while(line= read_line()){   inputs.push(line);// 把后边的每一行都当作一个字符串,作为数组的元素填入数组中,这样就可以操作了 }

print(func(inputs));

// 多行,多个测试用例放在一起,详细见下方给出的 输入输出教程 。

样例输入 3 1 2 3 1 // 到这里是第一组 5 4 1 2 1 3 4 0 2 5 1 3 2 1 // 到这里是第二组

let N, M; // 每组第一行是 2 个整数,N 和 M,至于为啥用 while,因为是多组。 while ((N=readInt()) != null && (M=readInt()) != null) { print (N + ' ' + M); // 循环读取 “接下来的 M 行” for (let i=0; i

补充两个赛码网官方给出的攻略,建议仔细读几遍:

其他小平台或自建平台

其他平台相对用得不多,在做题之前要先上平台练习练习,熟悉平台的规则。

需要注意的是:检查能否跳出做题界面,到本地编辑器做题。众所周知,一些智能化的编辑器可以有自动代码补充功能,大大节约了做题的时间。牛客网和赛码网的编程题都是可以的,问答题不可以。

通用技巧

  1. 每次做题提前 5 分钟准备好。为防止作弊,网站一般会要求你打开摄像头、签名、扫描小程序监控手机。这个步骤也会浪费一点时间。
  2. 仔细读题,很多题不难,描述性的文字很长,耐心点读完基本上就能做出来,很多人倒在了去做题的路上。
  3. 推荐使用 Chrome 浏览器作答。
原文链接:segmentfault.com

上一篇:React Hooks不完全解读
下一篇:使用react集成andt项目

相关推荐

  • 高效前端开发 - Visual Studio Code

    本文是根据我在公司演讲(2019年8月)的高效开发主题PPT重新总结发布的一篇文章。有兴趣了解PPT的可以前往百度网盘下载:高效开发 VSCode.pptx(https://pan.baidu.c...

    8 个月前
  • 零基础该如何学习前端开发?

    这种问题经常出现,我以前也学过不少类似的文章。但随着我做课程,讲课的时间日渐长久,我对于这个问题的理解和体会也在不断的变化着。 之前我对于这个问题,最直接的回复就是,零基础啊,那你就学呗,从ht...

    1 年前
  • 零基础学习前端开发不可不知的CSS原理

    从事Web前端开发的人都与CSS打交道很多,有的人也许不知道CSS是怎么去工作的,写出来的CSS浏览器是怎么样去解析的呢?学习前端开发必不可少一定要先了解CSS的原理的。

    1 年前
  • 阿里云诚招前端开发

    我们是谁? 我们来自阿里云双肾之一的销售管理部,负责阿里云的产品商业化、核心售卖链路、以及用户中心、财账相关的业务开发。 如果你购买过阿里云的服务,一定体验过阿里云售卖链路,它有很多的不足,跟淘...

    7 个月前
  • 针对前端开发可重用组件并发布到NPM

    翻译:疯狂的技术宅 原文:https://www.smashingmagazine....(https://www.smashingmagazine.com/2018/07/reusablecom...

    1 年前
  • 进军高级前端开发工程师必备的知识图谱

    一、前沿 全文(含脑图)为个人总结的关于高级前端开发工程师必备的技术能力,欢迎补充。全文结构如下: :写在正文前的一些话。 :基于知识图谱的脑图,看知识图谱晕的可以欣赏脑图。

    1 年前
  • 身为前端开发工程师,你需要了解的搜索引擎优化SEO.

    网站url 网站创建具有良好描述性、规范、简单的url,有利于用户更方便的记忆和判断网页的内容,也有利于搜索引擎更有效的抓取您的网站。网站设计之初,就应该有合理的url规划。

    2 年前
  • 走进前端开发——框架的演变

    对于大多数前端框架,我想聊一聊,这些前端框架从何而来,解决了什么问题,又有哪些高明之处。 认识了解问题,切忌一头扎进去研究而未了解其全貌。为此,我们追溯到20世纪90年代,网景浏览器横空出世,占据了...

    1 年前
  • 记美国面试经验,前端开发,提前预告,目前已经进背调了

    回忆一下这一个月的求职进展,可以说是心情跌宕起伏。先理一下数据,每天坚持投简历,一共投了大概70多个岗位,一直到月初,还没有收到任何的面试通知。月初的时候心情十分沉重,总是怀疑是不是自己的项目经验太少...

    2 年前
  • 记录前端上传图片到自己的对象存储中(Vue环境,以百度BOS为例)

    写在前面 最近在捣鼓自己的博客网站后台管理系统,在发布文章的时候需要用到上传图片,由于自己没有做上传图片的接口,所以就借助百度云的对象存储来实现上传到BOS然后返回BOS里面的图片链接供前端使用。

    2 个月前

官方社区

扫码加入 JavaScript 社区