牛客網在線判題系統JavaScript(V8)使用

  JavaScript做爲一種弱類型的編程語言,語法和C/C++、JAVA等存在差異,可是對於大部算法題,不僅是C/C++、JAVA,也依然可使用JavaScript來實現。因此在牛客網中,若是你喜歡JavaScript這門編程語言,同時對數據結構與算法感興趣,固然可使用這門語言去刷編程題。前端

  你們有沒有跟我碰到過和我相似的狀況,在牛客網刷編程題的時候,編譯器提供的是Javascript(v8 6.0.0),在線編程部分前端編程還好,只用在題目給出的函數中補充就行。但苦惱的是,咱們不知道如何像C/C++這樣實現輸入,相似於C的scanf 和 C++的cin函數。由於平時JavaScript基本都是函數式編程,就是將程序全都封裝在函數裏面,而後再調用函數,經過console控制檯或者node控制檯查看結果。前提是,輸入已經指定了。因而乎,牛客網在線判題系統的測試用例是不管如何也經過不了的,由於他的測試用例的輸入根本就無法傳進去。node

  主要緣由,其實仍是牛客網已經提供了針對JavaScript(V8 6.0.0)的解決辦法,在這裏簡要介紹一下,但願對你們有所幫助。算法

  如下是A+B題目的樣例代碼,http://www.nowcoder.com/questionTerminal/dae9959d6df7466d9a1f6d70d6a11417編程

  計算a+b的和,每行包行兩個整數a和b,對於每行輸入對應輸出一行a和b的和,距離:數組

輸入數據結構

1 5  編程語言

2 6函數式編程

輸出函數

6測試

8

(1)選擇Javascript(v8 6.0.0)

(2)獲取輸入(注意:readline獲得的是字符串,本例須要轉化爲數字)

while(line=readline()){
    var lines = line.split(' ');  //字符串轉換爲字符數組 var a = parseInt(lines[0]);
    var b = parseInt(lines[1]);
    print(a+b);
}

固然 若是是函數的話,也能夠像下面這樣

while(line=readline()){
    var lines = line.split(' ');
    var a = parseInt(lines[0]);
    var b = parseInt(lines[1]);
    function add(m,n){
        return m+n;
    }
    print(add(a,b));
}

(3)提交運行,能夠查看用例經過狀況

V8實現多行輸入

//多行輸入舉例
//打印一個多行矩陣
var n = parseInt(readline());
var ans = 0;
for(var i = 0;i < n; i++){
    lines = readline().split(" ")
    for(var j = 0;j < lines.length; j++){
        ans += parseInt(lines[j]);
    }
    print(ans);
}

Node實現多行輸入(固定行數)

var readline = require('readline');
const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout
});
var countLine = 1; var tokens = [];
rl.on('line', function(line){
   tokens.push(line); if(countLine == 2){ var arr1 = tokens[0].split('');
       var arr2 = tokens[1].split('');
        for(var i=0; i<arr2.length; i++){
            for(var j=0; j<arr1.length; j++){
                if(arr1[j] == arr2[i]){
                    arr1.splice(j,1);
                }
            }
        }
        console.log(arr1.join(''));       
   }else{
       countLine++;
   }
});

 

var readline = require('readline');
 
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
 
var K = 2;
var arr = [];
rl.on('line', function(data) {
    arr.push(data);
    if (K == arr.length) {
        var result = deal(arr);
        console.log(result);
        arr.length = 0;
 
    }
});
 
function deal(inputs) {
    //直接根據目標字符分割字符串成數組,計算數組長度減一就是所求。注意不區分大小寫。
    return inputs[0].toLowerCase().split(inputs[1].toLowerCase()).length-1;
}

Node實現多行輸入(行數不固定)

process.stdin.resume();
process.stdin.setEncoding('ascii');
  
var input = "";
var input_array = "";
  
process.stdin.on('data', function (data) {
    input += data;
});
  
process.stdin.on('end', function () {
    input_array = input.split("\n");
   //示例代碼     
var len = input_array.length;     var result = [];     for(var i=0; i<len; i++){         var temp = input_array[i].trim().split(' ');         for(var j=0; j<temp.length; j++){             if(temp[j]!=='' && result.indexOf(temp[j]) == -1){                 result.push(temp[j]);             }         }     }     console.log(result.length); });

 

參考資料:牛客網在線判題系統使用幫助

相關文章
相關標籤/搜索