牛客网Javascript V8 引擎输入输出

写在最前

最近开始在牛客网上刷题,日渐消瘦。又有了一次次解决问题的快感。
虽然用来刷题可能执行效率上有些欠缺,但是最熟悉的还是Javascript,所以暂时先用Javascript V8引擎,之后再用Nodejs重写一遍。
往事不要再提,人生几多分雨。光是折腾输入输出都很是费力。

Javascript V8 输入

牛客网的OJ系统Javascript V8引擎,采用readline()读取输入。为了方便,直接采用while循环,读取所有的输入。

单行

1
2
3
while(line=readline()){
var lines = line.split(' '); //同一行多个参数采用空格分割
}

多行

1
2
3
4
var lines = [];
while (line = readline()) {   
lines.push(line);
}

Javascript V8 输出

输出方面,可以采用print()方法或者console.log()方法进行。

单行

单行没什么可说的,就是直接撸结果。

1
2
//print(rusult);
console.log(rusult);

多行

输出多行就比较坑了,试了好几种方法,提交代码后都提示输出为空,无论是循环还是其他。终于试出来如下:

1
2
3
lines = ["1","2"]
print(main(lines).join("\n"));
//结果为 1 2

另外这里补充一句,array.join(" "),也可以做到与结果做到一样,但是验证无法通过。所以一定要使用这种方法。

总结

总结一下,基本上实用Javascript V8引擎刷题的结构如下:

1
2
3
4
5
6
7
8
9
10
function main(argument){
//do sth……
//
return array;
}
var lines = [];
while (line = readline()) {   
lines.push(line);
}
print(main(lines).join("\n"));

main()中写入处理函数,根据要求返回值即可。