使用JS在牛客网进行输入输出处理

由于之前参加ACM集训使用C进行刷题,导致思维一直停留在C,很久之前的面试就暴露了这个问题,但是由于自己思维禁锢的原因,加上一直使用的牛客网对JS的输入并不怎么友好,很多时候写好的代码,结果一条数据也没过,这就导致我宁愿去用算法来处理字符串,也不愿意用JS的遍历语法,但是毕竟还是要走前端这条路的,只能在刷题的过程中,强迫自己使用JS。
接下来吐槽一下牛客网的评判机制,当然这也与JS这门语言的性质有关,由于这门语言的变量属性是松散的,一个var就能声明所有类型的变量,这也就导致了它无法像C一样去灵活的读取每一种类型的变量,但是剑指offer这一点做得还是不错的,给个赞。
进入主题,一般的JS怎么写,是这样的:

function f(str) {

    return str;
}
var str = '   ';
console.log(f(str));

或者这样:

function f(str) {

 
    console.log(str)
}
var str = '  ';
f(str)

无论哪一种方式,都有一个相同的特点:输入的变量是固定的,但是评测机给出的数据可不止一条,那么就需要进行一下变动,可以这样:

function f(str) {

    return str;
}
str = readline()
console.log(f(str));

也可以这样:

str = readline()
    while(str){
         //balabal
    }
    print(str)

亲测有效。
2020-08-21更新,补充一下数值输入,单单只有字符串输入显然是不够的:
如果是要输入一行整数,例如下面这个例子,分别读取固定三个整数的值:

str = str.split(' ');
var a = Number(str[0]);
var b = Number(str[1]);
var c = Number(str[2]);

可以测试一下:

var str = "1 2 3";
//str = read_line();
str = str.split(' ');
var a = Number(str[0]);
var b = Number(str[1]);
var c = Number(str[2]);
console.log("a = ", a);
console.log("b = ", b);
console.log("c = ", c);

a = 1
b = 2
c = 3

结果无误,扩展一下,如果输入使用来分割的,那么就换成:

str = str.split(',');

根本思想就在于:1、分割2、数值转化、3、数值处理
参考博客:https://www.nowcoder.com/discuss/276

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值