JavaScript刷题时的输入问题总结

本文总结了在JavaScript中处理不同类型的输入问题,包括单行输入、已知行数的多行输入和未知行数的多行输入。通过提供相关题目链接,详细介绍了在牛客网使用Node.js编译器如何解决这类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

牛客编译模式选择node编译器

目录

单行输入

多行输入(行数已知)

多行输入(行数未知)


单行输入:

题目链接:https://www.nowcoder.com/practice/171278d170c64d998ab342b3b40171bb?tpId=40&tqId=21336&tPage=1&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

const readline = require('readline');
const r1 = readline.createInterface({
    input:process.stdin,
    output:process.stdout
})
r1.on('line',function(line){
    console.log(line.split('').reverse().join(''))
})

多行输入:(行数已知)

题目链接:https://www.nowcoder.com/practice/7f436c901a0d450ebdec1168e3e57cc2?tpId=40&tqId=21533&tPage=10&rp=5&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking

/*
【多行输入】
line事件是每次换行时都会触发(前提是没有close),
如果在已知行数的情况下,可以将输入push到临时数组中,直到一组数据全部push完成之后再对该数组做处理,到下一组时将该数组清空。
*/
const readline = require('readline');
let r1 = readline.createInterface({
    input:process.stdin,
    output:process.stdout
})

//输入2个长度相等的字符串
const Num = 2
let inputs = []

r1.on('line',function(input){
    inputs.push(input.trim())
     // 满足一组行数条件之后再进行数据的处理
    if(Num == inputs.length) {  
        let res = []
        let s1 = inputs[0].split('')
        let s2 = inputs[1].split('')
        let len = s1.length
        for (let i = 0; i < len; i++) {
            res.push(s1[i])
            res.push(s2[len - i - 1])
        }
        res = res.join('')
        console.log(res)
        inputs.length = 0
    }
})

多行输入:(行数未知)

题目链接:https://www.nowcoder.com/practice/2364ff2463984f09904170cf6f67f69a?tpId=40&tqId=21367&tPage=2&rp=1&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking

/*
输入行数不确定
这种类型题目大多是第一个输入为数据的组数,然后会输入这几组数据,即为1+n模式。
所以每组数据的第一个一定是接下来要获取输入的行数,后面这部分相当于已知行数,只需要在上面的基础上添加获取行数逻辑即可。
*/
const readline = require('readline');
const r1 = readline.createInterface({
    input:process.stdin,
    output:process.stdout
});

let Num = 0;
let inputs = []
r1.on('line',function(input){
    if(Num == 0){
        Num = parseInt(input.trim());
    } else{
        inputs.push(input.trim());
        if(Num == inputs.length) {
            let res
            inputs.sort((a, b) => a - b)
            if(Num % 2 !== 0) {
                res = inputs[(Num - 1) / 2]
            } else {
              // 这里要注意转化一下  不然会拼接成字符串
                res = Math.floor((parseInt(inputs[Num / 2]) + parseInt(inputs[Num / 2 - 1]))  / 2)
            }
            console.log(res)
          // 不要忘记清空
            inputs.length = 0
            Num = 0
        }
    }
})

文章参考于:这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值