牛客網javascript程式設計的輸入輸出
阿新 • • 發佈:2019-02-09
寫在前面
轉載地址http://blog.csdn.net/baidu_38742725/article/details/77717853?locationNum=5&fps=1
作為一名程式設計師,你找工作的時候一定要刷牛客網的各種演算法、資料結構和程式設計題,那麼,問題來了,牛客網的線上程式設計題,不是所有的都可以通過一個function解決的,尤其線上考試那些,都需要標準的輸入輸出,那麼重點來了,怎麼輸入輸出資料呢?(注:輸入預設為字串)
總結了下:
方法一:V8之readline
方法二:Node之readline
方法三:Node之process
V8
//求a+b
//前面四行都是一樣的
//牛客網:readline
//賽碼:read_line
var print = console.log;
var __readline = require('readline-sync');
__readline.setDefaultOptions({prompt: ''});
var read_line = __readline.prompt;
while(line=read_line()){
//write your code here
var lines = line.split(" ");
var a = parseInt(lines[0]);
var b = parseInt (lines[1]);
print(a+b);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
readline方法
//單行輸入
var readline=require("readline");
const r1=readline.createInterface({
input:process.stdin,
output:process.stdout
});
r1.on('line',function(line){
//write your code here
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
example:
//字串最後一個單詞的長度
/*計算字串最後一個單詞的長度,單詞以空格隔開。
輸入描述: 一行字串,非空,長度小於5000。
輸出描述: 整數N,最後一個單詞的長度。
輸入:hello world
輸出:5 */
//字串最後一個單詞的長度
var readline=require("readline");
const r1=readline.createInterface({
input:process.stdin,
output:process.stdout
});
r1.on('line',function(line){
//找到陣列中最後一個空格
var lastSpacebar = line.lastIndexOf(" ");
//用splice獲取最後一個字串
var lastWord = line.slice(lastSpacebar+1);
console.log(lastWord.length);
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
//多行輸入
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const lines = [];
rl.on("line", function(line) {
//將輸入放到新建的空陣列中
lines.push(line);
//判斷,如果輸入的行數等於某一值時
if (lines.length === 2){
//通過陣列索引分別得到陣列中每一行的資料,並做相應操作
const num1 = lines[0].split(' ').sort(function(a,b) {return b-a;});
const num2 = lines[1];
// console.log(num1);
// console.log(num2);
console.log(num1[num2-1]);
}
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
//多行輸入
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var inputArr = [];
rl.on('line', function (input) {
//將輸入放到新建的空陣列中
inputArr.push(input);
//將輸入的資料轉換為陣列
var inputs = input.split(" ");
//得到第一行的那個數(行數)
var nLine = +inputArr[0];
//判斷,如果第一行輸入的數字(行數)等於輸入的總行數
if (inputArr.length == (nLine + 1)) {
//擷取第一行到最後一行資料(即:除了第一個資料行數之外的其他資料)
var arr = inputArr.slice(1);
//這裡列印的arr不包括第一行數字(行數)
console.log(arr);
//這裡列印的inputArr包括第一行數字(行數)
// console.log(inputArr);
inputArr = [];
// console.log(inputArr);
}
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
process方法
process.stdin.resume();
process.stdin.setEncoding("ascii")
var input=""
process.stdin.on("data",function(data){
//將輸入的資料賦給input
input+=data;
var chunk= data.slice(0,-2);
if(chunk===''){
process.stdin.emit('end');
}
})
process.stdin.on('end',function(){
//將輸入的多行資料轉換為陣列
var arr=input.split("\n");
//去掉陣列的第一個資料
arr.shift();
var arrb=[]
//迴圈遍歷陣列,將去重後的資料儲存到新的陣列arrb中
for(var i=0;i<arr.length;i++){
if(arrb.indexOf(arr[i])==-1){
arrb.push(arr[i])
}
}
//這裡呼叫了API,排序,將得到的陣列arrb排序並且轉換為字串
var str=arrb.sort(function(a,b){return a-b;}).join('\n');
console.log(str);
})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
程式媛小白一枚,有錯誤的地方,還望大佬指正~~O(∩_∩)O