博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客网在线判题系统JavaScript(V8)使用
阅读量:5355 次
发布时间:2019-06-15

本文共 2443 字,大约阅读时间需要 8 分钟。

  JavaScript作为一种弱类型的编程语言,语法和C/C++、JAVA等存在差别,但是对于大部算法题,不只是C/C++、JAVA,也依然可以使用JavaScript来实现。所以在牛客网中,如果你喜欢JavaScript这门编程语言,同时对数据结构与算法感兴趣,当然可以使用这门语言去刷编程题。

  大家有没有跟我碰到过和我类似的情况,在牛客网刷编程题的时候,编译器提供的是Javascript(v8 6.0.0),在线编程部分前端编程还好,只用在题目给出的函数中补充就行。但苦恼的是,我们不知道如何像C/C++这样实现输入,类似于C的scanf 和 C++的cin函数。因为平时JavaScript基本都是函数式编程,就是将程序全都封装在函数里面,然后再调用函数,通过console控制台或者node控制台查看结果。前提是,输入已经指定了。于是乎,牛客网在线判题系统的测试用例是无论如何也通过不了的,因为他的测试用例的输入根本就没法传进去。

  主要原因,其实还是牛客网已经提供了针对JavaScript(V8 6.0.0)的解决办法,在这里简要介绍一下,希望对大家有所帮助。

  以下是A+B题目的样例代码,

  计算a+b的和,每行包行两个整数a和b,对于每行输入对应输出一行a和b的和,距离:

输入

1 5  

2 6

输出

6

8

(1)选择Javascript(v8 6.0.0)

(2)获取输入(注意:readline得到的是字符串,本例需要转化为数字)

while(line=readline()){    var lines = line.split(' ');  //字符串转换为字符数组    var a = parseInt(lines[0]);    var b = parseInt(lines[1]);    print(a+b);}

当然 如果是函数的话,也可以像下面这样

while(line=readline()){    var lines = line.split(' ');    var a = parseInt(lines[0]);    var b = parseInt(lines[1]);    function add(m,n){        return m+n;    }    print(add(a,b));}

(3)提交运行,可以查看用例通过情况

V8实现多行输入

//多行输入举例//打印一个多行矩阵var n = parseInt(readline());var ans = 0;for(var i = 0;i < n; i++){    lines = readline().split(" ")    for(var j = 0;j < lines.length; j++){        ans += parseInt(lines[j]);    }    print(ans);}

Node实现多行输入(固定行数)

var readline = require('readline');const rl = readline.createInterface({        input: process.stdin,        output: process.stdout});var countLine = 1;var tokens = [];rl.on('line', function(line){   tokens.push(line);   if(countLine == 2){       var arr1 = tokens[0].split('');       var arr2 = tokens[1].split('');        for(var i=0; i

 

var readline = require('readline'); const rl = readline.createInterface({    input: process.stdin,    output: process.stdout}); var K = 2;var arr = [];rl.on('line', function(data) {    arr.push(data);    if (K == arr.length) {        var result = deal(arr);        console.log(result);        arr.length = 0;     }}); function deal(inputs) {    //直接根据目标字符分割字符串成数组,计算数组长度减一就是所求。注意不区分大小写。    return inputs[0].toLowerCase().split(inputs[1].toLowerCase()).length-1;}

Node实现多行输入(行数不固定)

process.stdin.resume();process.stdin.setEncoding('ascii');  var input = "";var input_array = "";  process.stdin.on('data', function (data) {    input += data;});  process.stdin.on('end', function () {    input_array = input.split("\n");    //示例代码    var len = input_array.length;    var result = [];    for(var i=0; i

 

参考资料:

转载于:https://www.cnblogs.com/guorange/p/7229152.html

你可能感兴趣的文章
【Python3 爬虫】15_Fiddler抓包分析
查看>>
高性能JavaScript-JS脚本加载与执行对性能的影响
查看>>
关于标签之间因为换行等问题造成的空白间距问题处理
查看>>
hdu 2767(tarjan)
查看>>
sklearn之分类模型混淆矩阵和分类报告
查看>>
MySQL各存储引擎
查看>>
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>
织梦文章内容提取第一张或者多张图片输出
查看>>
C#用正则表达式 获取网页源代码标签的属性或值
查看>>
BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)
查看>>
WCF(一) 简单的认知
查看>>
[MFC][DShow]简单例子
查看>>
Luogu P1141 01迷宫【搜索/dfs】By cellur925
查看>>
js onclick事件传参
查看>>
WiCloud 商业Wi-Fi管理平台
查看>>
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>
python中的网页标签等字符处理
查看>>
Mybatis输入类型和结果类型
查看>>