用node.js解决编程题的输入问题

摘要:
1.读一行并输入consecline=require('readline')//这里我们介绍const=readline。createInterface({//创建输入/输出接口input:process.stdin,output:process.sstdout});Rl。on('line',function(line){//听控制台输入vardata=line.trim();//获取控件

1.读取一行输入

const readline = require('readline');//在这里引入

const rl = readline.createInterface({ //创建输入输出接口
  input: process.stdin,
  output: process.stdout
});

rl.on('line',function(line){//监听控制台的输入
 var data=line.trim();//拿到控制台输入
 var result=....//编程逻辑处理
console.log(result); //输出结果
});

读取一行中的两个数据:

var readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});
rl.on('line', function(line) {
var data1=line.split(' ')[0];
var data2=line.split(' ')[1];
console.log(data1);
});

 

2.读取两行输入

题目:输入两行,第一行是字符串s1,第二行是字符串s2,输出两个字符串连接后的结果。
例子:

输入  "hello"
      "world"
      
输出  "helloworld"  
 

代码如下:

const readline = require('readline');

const rl = readline.createInterface({ 
  input: process.stdin,
  output: process.stdout
});

var k=2;//这里代表题目中设定好的输入的行数
var rows=[]; //用于存储每行的输入

rl.on('line',function(line){
 rows.push(line);//将每次输入的行数据存入
 if(k==rows.length){//当输入的行数等于设定的k值时,开始逻辑处理
 
   var result=rows[0]+rows[1]; //连接字符串
   console.log(result); //输出结果
   
   rows.length=0;//状态重置
 }

});

3.N行输入的在线编程

题目:输入数字N(1<N<10),接下来输入N行字符串,输出所有字符串连接后的新字符串。
例子:

输入:4
     "nice"
     "to"
     "meet"
     "you"
     
输出:"nicetomeetyou"  

代码如下:

const readline = require('readline');

const rl = readline.createInterface({ 
  input: process.stdin,
  output: process.stdout
});

var k=-1;//先给行数置-1,表示还没开始读取
var rows=[]; //用于存储每行的输入

rl.on('line',function(line){
 if(k<0){
   k=parseInt(line.trim());//读取第一行,得到接下来输入的行数
 }else{
   rows.push(line.trim());//将每次输入的行数据存入
    if(k==rows.length){//当输入的行数等于设定的k值时,开始逻辑处理
 
     var result=rows.reduce(function(fir,cur){ //连接字符串
     return fir+cur;
   });
     console.log(result); //输出结果
   
     rows.length=0;//状态重置
     k=-1;
   }
 }
});
   

4..通用性的方式:按照数据流输入的方式

在做笔试时碰到过例题的输入方式,不是按行读入的,是一次性读入,然后按照“ ”进行行分隔

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("
");
    var nLine = 0;

    while(nLine < input_array.length){
        var line = input_array[nLine++].trim();
        if(line === ''){
            continue;
        }
        var input_arrays = line.split(' ');
        var a = +input_arrays[0];
        var b = +input_arrays[1];
        console.log(a+b);
    }
});

免责声明:文章转载自《用node.js解决编程题的输入问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# 鼠标拉伸、移动控件 改变鼠标形状Kibana插件sentinl使用教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Corn 表达式

CronTriggerCronTrigger通常比SimpleTrigger更有用。如果您需要基于日历的概念,而不是SimpleTrigger完全指定的时间间隔,则重复启动工作的时间表。CronTrigger,您可以指定触发器计划,例如“每周五中午”、“每工作日9:30”,甚至“每周一上午、周三和周五9:00和10:00每五分钟”。即使如此,就像Simple...

Lynx浏览器简明使用指南(转)

Lynx可以运行在很多种操作系统下,如VMS,UNIX,Windows95,WindowsNT等,当然也包括Linux。由于没有漂亮的图形界面,所以Lynx占用资源极少,而且速度很快。另外Lynx还是唯一能在字符终端下运行的WWW浏览器。Lynx的主页地址是:http://lynx.browser.org,另外http://www.cc.ukans.edu/...

winform中 跨线程启动UI

C#的winform程序中,是不可以从UI窗口主线程之外的线程去直接操作窗口控件的。确切的解释是,不能从创建控件的线程以外的线程去处理控件的操作,比如修改属性等。方法二,通过Control.Invoke调用委托的方式来执行。...

echarts折线图 鼠标移入改变小点显示样式

=undefined){res+=nameList[i].seriesName+':'+nameList[i].data+'%'+''}}res=res.split;returnres[0]+''+res[1];}}echarts折线图的鼠标移动上去小点显示样式修改tooltip:{trigger:'axis',formatter:function{varr...

node 访问第三方API

如果没有提供头,将检测文件后缀,并在PUT请求中设置相应的内容类型。...

Animation

Animation(function($){functionactive(target,index){varactions=$(target).data('actions');if(index˂actions.length){varcallee=arguments.callee;varaction=actions[index];if(!$(target).d...