当前位置: 首页 > article >正文

前端笔试中oj算法题的解法模版

如今计算机行业的校招大多都是需要先进行笔试,之后才有面试,如果发现题目都会但是却因为自己不了解接受输入参数的模板导致没能通过笔试,哪还是比较可惜的(我就碰到过这种问题pwq)。因此我特意上网查了一下,并结合多个网站进行测试,最终找到了一个相对通用的模板。本篇文章就以一行输入两个数字a,b;输出a和b之和这道题目来写的模板。

oj算法输入使用的是readline,但是不同网站上有不同的写法。我这里知道的有两种:

方法一:

        写法一:
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });
rl.on('line', (input) => {
    if (input === '') {
        return rl.close();
    }
    const [a, b] = input.split(' ').map(Number)
    console.log(a + b);
});

        方法一的第一种写法适合处理多行输入,单行处理。比如:输入3行,每行两个数,输出每行两个                                数的和。

        写法二:
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });
const arr=[]//创建数组准备接受输入
rl.on('line', (input) => {
    if (input === '') {
        return rl.close();
    }
    arr = input.split(' ').map(Number)//将输入的单行数据转成数字数组赋值给arr。因为本片文章以输入单行两个数字为例子,所以这么写,实际问题需要发生相应比变化
});

rl.on('close', () => {//所有需要数据接收完成后,在次方法中进行处理。
  console.log(arr[0]+arr[1])
});

        第二种写法适合多行输入,整体处理。比如: 输入三行,每行一个数,输出这是三个数的和。

方法二;

        写法一:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    while(line = await readline()){
        let tokens = line.split(' ');
        let a = parseInt(tokens[0]);
        let b = parseInt(tokens[1]);
        console.log(a + b);
    }
}()

         此种写法对应方法一中的写法,适合处理多行输入,单行处理。

        相应的,方法二也有对应的多行输入,整体处理的写法

        写法二:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    let arr=[]
    while(line = await readline()){
        arr.push(line)
    }
    console.log(arr[0]+arr[1])
}()

上面总共提到两种方法,根据不同的输出有不同的写法。大家可以按照自己的理解选择一种进行记忆,推荐使用方法一,因为一开始将方法二放在方法一的页面中报错了,后来才好了,不知道是什么原因......

希望本篇文章可以帮助到没接触过oj算法的同学,祝大家能够拿到心仪的offer!!!


http://www.kler.cn/a/395350.html

相关文章:

  • 如何在Mac上切换到JDK 17开发环境
  • 试编写算法将单链表就地逆置(默认是带头节 点,如果是不带头节点地逆置呢?)
  • JVM详解:类的加载过程
  • python怎么设置环境变量
  • react-redux useSelector钩子 学习样例 + 详细解析
  • Vue.js 项目创建流程
  • Git - 命令杂谈 - fetch与push
  • 13 字母异位词分组
  • 第12课 二维数组(1)
  • Springboot配置全局异常通用返回
  • 电子工牌独立双通道定向拾音方案(有视频演示)
  • qt里面的ui文件和c++的关系
  • Elasticsearch 重建索引数据迁移
  • 智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁
  • 【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
  • 点云论文阅读-1-pointnet++
  • HTTP —— OSI七层模型
  • 深度学习之 LSTM
  • MACA-PEG-NHS中PEG链段能够增加修饰后材料的溶解度和稳定性
  • 无人机飞手在保家卫国上重要性技术详解
  • 如何使用谷歌浏览器阅读网页内容
  • 微信小程序中使用离线版阿里云矢量图标
  • Dubbo分布式日志跟踪实现
  • Win10 安装MySQL 5.7.32(解压版)
  • Flink1.19编译并Standalone模式本地运行
  • 在C2M(Customer-to-Manufacturer)柔性制造模式下,算法