之前做劍指offer的題,題目的函數都已定義,自己只需要寫函數體,等到做公司真題,才發現函數這些都是不存在的,輸入輸出都需要自己定義,百度後,寫這篇博客加深印象。
首先,輸入輸出均採用nodeJS,nodeJS控制檯默認輸入是字符串類型,若需要數字類型需要進行轉化。
1、單行輸入
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line',function(line){
//line爲輸入的單行字符串,split函數-通過空格將該行數據轉換成數組
var arr = line.split(' ');
//數組arr的每一項都是字符串格式,若需要整型,則需要parseInt將其轉換成數字
console.log(parseInt(arr[0])+parseInt(srr[1]));
})
2、多行輸入
1)、輸入所有行
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var inputs = [];
rl.on('line',function(line){
//trim()去除字符串兩邊的空白,line表示一行輸入,最終得到的inputs數組的每一個元素表示一行輸入。
inputs.push(line.trim());
//下面再對每一行輸入進行處理
......
})
2)、輸入多行
process.stdin.resume();
process.stdin.setEncoding('ascii');
var input = "";
var input_array = "";
process.stdin.on('line',function(line){
input ++line;
});
process.stdin.on('end',function(){
input_array = input.split("\n");
//處理input
});
3)、規定讀入num行
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===num){
//操作部分
}else{
countLine++;
}
})
3、輸出
採用console.log();