1. 程式人生 > >牛客網javascript程式設計的輸入輸出

牛客網javascript程式設計的輸入輸出

寫在前面

轉載地址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
save_snippets.png

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
save_snippets.png

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
save_snippets.png
//多行輸入
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
save_snippets.png
//多行輸入
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
save_snippets.png

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
save_snippets.png

程式媛小白一枚,有錯誤的地方,還望大佬指正~~O(∩_∩)O