2018-09-09

前端笔试第一坑:nodejs输入输出-典型三种情况(二)

一、处理单行输入

var readline = require('readline');

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

var K = 2; // 输入K行
var inputs = [];
rl.on('line', function(data) {
    // 获取输入
    inputs.push(data.trim());
    if (K == inputs.length) { //
        // 处理
        var result = deal(inputs);

        // 输出结果
        console.log(result);
        // 清0
        inputs.length = 0;

    }
});

/**
 * [deal description]
 * @param  {[type]} inputs [description]
 * @return {[type]}        [description]
 */
function deal(inputs) {
    var result = [];

    // dosomething
    var s1 = inputs[0].split("");
    var s2 = inputs[1].split("");
    var len = s1.length;
    for(var i = 0;i<len;i++){
        result.push(s1[i]);
        result.push(s2[len-i-1]);
    }  
    
    return result.join("");
}

二、输入的行数已经确定

var readline = require('readline');
rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
var K = 2; // 输入K行
var inputs = [];
rl.on('line', function(data) {
    // 获取输入
    inputs.push(data.trim());
    if (K == inputs.length) { //
        // 处理
        var result = deal(inputs);
        // 输出结果
        console.log(result);
        // 清0
        inputs.length = 0;
    }
});
/**
 * [deal description]
 * @param  {[type]} inputs [description]
 * @return {[type]}        [description]
 */
function deal(inputs) {
    var result = [];
    // dosomething
    var s1 = inputs[0].split("");
    var s2 = inputs[1].split("");
    var len = s1.length;
    for (var i = 0; i < len; i++) {
        result.push(s1[i]);
        result.push(s2[len - i - 1]);
    }
    return result.join("");
}

三、一组测试数据行数不确定(1+n模式)

啥意思呢?就是说一组测试数据的第一行是一个数字n,然后后面有n行,这1+n行就是一组测试数据。模板给上:

var readline = require('readline');

rl = readline.createInterface({

input: process.stdin,

output: process.stdout

});

var inputs = [];

var num = 0;

rl.on('line', function(data) {

if (num == 0) {

num = Number(data.trim());

} else {

inputs.push(data.trim());

if (num == inputs.length) {

// 处理

var result = deal(inputs);

// 输出结果

console.log(result);

// 清0

inputs.length = 0; //不可改动

num = 0; //不可改动

}

}

});

/**

\* [deal description]

\* @param  {[type]} inputs [description]

\* @return {[type]}        [description]

*/

function deal(inputs) {

var result = '';

// dosomething

for (var i = inputs.length - 1; i >= 0; i--) {

result += inputs[i]

}

return result;

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前端笔试第一坑:nodejs输入输出-典型三种情况(二) 一、处理单行输入 var readline = requ...
    yesufan阅读 240评论 0 0
  • 前端笔试第一坑:nodejs输入输出(一): 参考:nodejs oj在线笔试应对方案(讲几种输入处理方法) - ...
    yesufan阅读 250评论 0 0
  • 【业务技能】 1写作训练小技巧 22个习惯让你成为讲故事高手,让人欲罢不能 3一篇10W+爆文,应该具备的5个极具...
    周小毛JudyChou阅读 127评论 0 0
  • 因为上次在Portland小镇出海钓金枪鱼的文章发表了,本人在墨尔本华人钓鱼圈里小有名气。说到良哥没人鸟,可说到...
    宗良阅读 3,606评论 1 0
  • 我去死,你们去生。我们所去做的那个事更好,谁也不知道——除了神。 这是读完《苏格拉底的申辩》后,我最喜欢的一句话,...
    努哈哈阅读 146评论 0 0