一开始,我不知道node模式是怎么回事,于是我去百度了下,JavascriptACM模式牛客输入输出_了不起的小瑜儿的博客-CSDN博客_acm模式 js
很好,初步了解之后开始动手。
做的题目是 HJ2 计算某字符出现次数
首先说,对Node不了解,。。。。
然后,rl.on是先将输入流line全部执行完之后再执行输出 close,很好,于是我在输入流里面一顿子哐哐哐的操作,哦豁,拿不到换行之后的数据,也就是辣个特殊字符,于是开始调试,哦豁,明白咯,只能在close里面操作。
开始的时候我根据上面那个博主的代码在fun这个方法里面又是哐哐哐的动手,但是很悲剧,转换大小写一直报错,我不懂为什么,于是我无奈的把代码敲进了close里,终于成功了,泪奔~~~~
总结就是!!!直接将输入流里面的东西,管他是什么,直接放到一个数组里面,后续在对其操作,就OK了!!!
新手一枚,请大佬们多多指教~
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const inputArr = []; //存放输入的数据
rl.on("line", function (line) {
//line是输入的每一行,为字符串格式
inputArr.push(line); //将输入流保存到inputArr中(注意为字符串数组)
}).on("close", function () {
let inputArr1 = inputArr[0].toLowerCase().split("");
let a = inputArr[1].toLowerCase();
let con = 0;
inputArr1.forEach((e) => {
if (a == e) {
con++;
}
});
console.log(con); //调用函数并输出
});
//解决函数
// function fun(arr) {
// arr = arr[0].toLowerCase().split("");
// let a = arr[1].toLowerCase();
// let con = 0;
// arr.forEach((e) => {
// if (a == e) {
// con++;
// }
// });
// return con;
// }