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

embedded/2024/11/13 23:26:08/

如今计算机行业的校招大多都是需要先进行笔试,之后才有面试,如果发现题目都会但是却因为自己不了解接受输入参数的模板导致没能通过笔试,哪还是比较可惜的(我就碰到过这种问题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.ppmy.cn/embedded/136952.html

相关文章

C 语言学习-05【数组】

1、一维数组元素的操作 输入一个数&#xff0c;按原来排序的规律将它插入到一个一排列好的数组中&#xff1a; #include <stdio.h>int main() {int i, data, a[10] {2, 3, 6, 9, 11, 12, 14, 17, 19};printf("Primitive series: \n");for (i 0; i < 9; i)…

详细分析Guava库中的注解@VisibleForTesting,用于标记提醒私有(附Demo)

目录 前言1. 基本知识2. Demo 前言 对于Java基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 从实战中学习&#xff1a; 源码如下&…

【韩老师零基础30天学会Java 】06章 数组、排序和查找

第六章 数组、排序和查找 1. 数组&#x1f6a9;&#x1f6a9; 数组介绍&#xff1a; 数组可以存放多个同一类型的数据。数组也是一种数据类型&#xff0c;是引用类型。即:数组就是一组数据。 示例&#xff1a; double [] hens{3,5,1,3,4,2,50,7.8,88.8,1.1,5}; double totalWe…

ENSP作业——园区网

题目 根据上图&#xff0c;可得需求为&#xff1a; 1.配置交换机上的VLAN及IP地址。 2.设置SW1为VLAN 2/3的主根桥&#xff0c;设置SW2为VLAN 20/30的主根桥&#xff0c;且两台交换机互为主备。 3.可以使用super vlan。&#xff08;本次实验中未使用&#xff09; 4.上层通过静…

基于开源AI智能名片2+1链动模式S2B2C商城小程序源码的连环消费链条优化研究

摘要&#xff1a;随着电子商务的快速发展&#xff0c;如何提高顾客的复购率成为了商家关注的焦点。本文通过对开源AI智能名片21链动模式S2B2C商城小程序源码的研究&#xff0c;探讨了如何利用自动化促销模式构建连环消费链条&#xff0c;从而不断刺激顾客复购。本文首先介绍了连…

【大数据学习 | HBASE高级】region split机制和策略

1. region split机制 ​ HRegionServer拆分region的步骤是&#xff0c;先将该region下线&#xff0c;然后拆分&#xff0c;将其子region加入到hbase:meta表中&#xff0c;再将他们加入到原本的HRegionServer中&#xff0c;最后汇报Master。 split前&#xff1a;hbase:meta表有…

React 源码学习01 ---- React.Children.map 的实现与应用

1. 使用方法 React.Children.map(children, function[(thisArg)])2. 方法解释 在 children 里的每个直接子节点上调用一个函数&#xff0c;并将 this 设置为 thisArg。如果 children 是一个数组&#xff0c;它将被遍历并为数组中的每个子节点调用该函数。如果子节点为 null 或…

【Linux】常用命令(2.6万字汇总)

文章目录 Linux常用命令汇总1. 基础知识1.1. Linux系统命令行的含义1.2. 命令的组成 2. 基础知识2.1. 关闭系统2.2. 关闭重启2.3. 帮助命令&#xff08;help&#xff09;2.4. 命令说明书&#xff08;man&#xff09;2.5. 切换用户&#xff08;su&#xff09;2.6.历史指令 3.目录…