牛客网在JS Node的语言下,acm模式的默认标准输入输出代码是这样的:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function (line) {
const tokens = line.split(' ');
console.log(parseInt(tokens[0]) + parseInt(tokens[1]));
});
虽然刚接触这个,但看着也大概晓得line存储的就是你输入的数据。但单行还好,如果是碰到多行怎么搞?调用多个rl.on? 还是将line改为lines??
找了一圈,终于找到答案了。先看看在输入数据有多行的情况下,这个默认代码获取到的数据到底有些什么?
rl.on('line', function (line) {
console.log(line)
});
会发现,它是会分别存储你输入的两行数据的。所以面对这种输入有两行数据的题目,可以这样拿到数据:
- 定义一个数组
- 将输入的数据push到这个数组里
- 加个if判断,当数组的长度达到了题目所给出的输入数据的数量时,就开始进行对应的算法操作。
具体例子: