京东编程题(OJ输入输出)

来源:互联网 发布:通信网络系统组成 编辑:程序博客网 时间:2024/06/05 13:36

给你两个集合,要求{A} + {B}。 注:同一个集合中不会有两个相同的元素。
输入描述:
每组输入数据分为三行,第一行有两个数字n,m(0 ≤ n,m ≤ 10000),分别表示集合A和集合B的元素个数。后两行分别表示集合A和集合B。每个元素为不超过int范围的整数,每个元素之间有个空格隔开。
输出描述:
针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开,行末无空格。
输入例子1:
3 3
1 3 5
2 4 6
输出例子1:
1 2 3 4 5 6

var readline = require('readline')const rl = readline.createInterface({    input: process.stdin,    output: process.stdout})//行数var lines = 3;//输入结果数组var inputs = [];rl.on('line', function(data){    //读取输入    inputs.push(data.trim().split(" ").map(function(i){return parseInt(i);}));    //读取指定行数才执行    if(lines === inputs.length) {        console.log(deal(inputs));    }});function deal(inputs){    var arr = [].concat(inputs[1],inputs[2]);    var result = [];    for(var i=0;i<arr.length;i++){        if(result.indexOf(arr[i])=== -1){            result.push(arr[i]);            }    }    return result.sort(function(a,b) {return a-b;}).join(" ");}

不用node.js:

//行数var lines = 3;//输入结果数组var inputs = [];while(data = readline()){    //读取输入    inputs.push(data.trim().split(" ").map(function(i){return parseInt(i);}));    //读取指定行数才执行    if(lines === inputs.length) {        console.log(deal(inputs));    }};function deal(inputs){    var arr = [].concat(inputs[1],inputs[2]);    var result = [];    for(var i=0;i<arr.length;i++){        if(result.indexOf(arr[i])=== -1){            result.push(arr[i]);            }    }    return result.sort(function(a,b) {return a-b;}).join(" ");}

输入

今天终于搞懂了OJ(online judge)的输入输出;
输入只有一行时,原生js就可以读取:

//如:2 5while(line=readline()){    var lines = line.split(' ');    var a = parseInt(lines[0]);    var b = parseInt(lines[1]);    print(a+b);//7}

多行有些麻烦了,因为readline()只读取一行;

不用node.js:

//行数var lines = 3;//输入结果数组var inputs = [];while(data = readline()){    //读取输入    inputs.push(data.trim().split(" ").map(function(i){return parseInt(i);}));    //读取指定行数才执行    if(lines === inputs.length) {        //这里调用函数处理    }};

或者可以用node.js

var readline = require('readline')const rl = readline.createInterface({    input: process.stdin,    output: process.stdout})//行数var lines = 3;//输入结果数组var inputs = [];rl.on('line', function(data){    //读取输入    inputs.push(data.trim().split(" ").map(function(i){return parseInt(i);}));    //读取指定行数才执行    if(lines === inputs.length) {        //这里调用函数处理    }});//处理函数function deal(inputs){ //readline()读取的每一行存进了一个输出,3行所以存入3个数组进入inputs中,这里concat第二个和第三个    var arr = [].concat(inputs[1],inputs[2]);}

输出

牛客网的输出print和console.log()都可以,注意,输出语句只能输出一次。

原创粉丝点击