zoukankan      html  css  js  c++  java
  • (二)各大笔试网站(牛客网、赛码网、测评网)介绍和做题技巧——以前端开发为例

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

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

    • 牛客网:腾讯、美团等一众大中小厂
    • 赛码网: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<M; i++) {
        let a = readInt();
        let b = readInt();
        let c = readInt();
        // 每行是 3 个整数,a,b,c。
        print(a + '' + b +' ' + c);
      }
      // M 行读取完了,就又要开始下一组了,去 while 那里。
    }
    

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

    其他小平台或自建平台

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

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

    通用技巧

    1. 每次做题提前 5 分钟准备好。为防止作弊,网站一般会要求你打开摄像头、签名、扫描小程序监控手机。这个步骤也会浪费一点时间。
    2. 仔细读题,很多题不难,描述性的文字很长,耐心点读完基本上就能做出来,很多人倒在了去做题的路上。
    3. 推荐使用 Chrome 浏览器作答。
  • 相关阅读:
    iOS 定制controller过渡动画 ViewController Custom Transition使用体会
    iOS 和 Android 中的Alert
    iOS 中的frame,bounds,center,transform关联
    Android Services重点记录
    iOS 中的字体预览
    iOS 中关于ViewController总结
    iOS7 和 iOS6的页面兼容问题
    docker安装并修改Nginx镜像
    docker环境搭建
    Eclipse中.setting目录下文件介绍
  • 原文地址:https://www.cnblogs.com/kurryluo/p/12335272.html
Copyright © 2011-2022 走看看