之前做剑指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();