ACM模式输入输出处理(JS版)
在ACM模式中,需要自己处理输入及输出,如果是一行或者两行简单的数据,可以直接读取。但也会存在一些比较难处理的输入格式。这里尝试了几种方式可以快速拿到输入数据。
// 引入输入输出
const rl = require("readline").createInterface({
input: process.stdin,
output: process.stdout
});
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () { // 单行处理
line = await readline(); // 也可以一直执行这句拿到每一句
// 编写代码...
})();
void async function () {
while(line = await readline()){ // 多行处理
// 编写代码...
}
}()
特殊格式:
输入:A={1,3,5},B={2,4,6},R=1
const regExp = /A\=\{(.+)\}\,B\=\{(.+)\}\,R\=(.+)/;
let [_, A, B, R] = regExp.exec(line);
// 获得结果
// '1, 3, 5', '2, 4, 6', '1'
A = A.split(",").map(Number);
B = B.split(",").map(Number);
R = parseInt(R);