资讯专栏INFORMATION COLUMN

基于牛客网Js v8引擎提供的读/写方法做的调试页面

wqj97 / 2152人阅读

摘要:牛客网为了满足我们用写编程题的愿望,在那块,给提供了和两个方法,用来读取输入和输出但很明显,这只能在它提供的编码页面才能用,我们想线下使用,而且想进行是更不可能的。

项目地址

正直秋招季,对找工作的人来说,牛客网肯定不陌生,现在很多大型互联网公司的在线笔试都是在牛客网上面进行的(好像有打广告的嫌疑)。

Js有那么多的操作数据结构的api,ES6新增的那些set、map数据结构和其它的比如Array.from()这么方便的东西。作为一名想成为前端程序员的菜鸟,就想好好的用Js写编程题,奈何都知道,Js局限性,对数据的读取和输出都得靠页面来实现,当然也可以console,只是不符合我们现在需要的使用场景。

牛客网为了满足我们用Js写编程题的愿望,在Javascript v8那块,给提供了readline()和print()两个方法,用来读取输入和输出:

但很明显,这只能在它提供的编码页面才能用,我们想线下使用,而且想进行debug是更不可能的。怎么办?想用Js写题目又不能保证代码一次写对,想debug又无从下手。然后一堆人转用C++、Java去了。但本菜鸟就是想用Js写,怎么办?只能自己仿照那两个函数(readline()和print())实现其功能了,写一个线下的调试页面,本地js代码放上去调试,完了之后直接复制黏贴代码到牛客网就行了。

效果演示:

先说下,代码很简陋,基本思路就是一个页面两个框,一个用来输入数据--readline(),一个用来显示执行结果--print()。要调试的Js文件得自己在entry.js文件中引入,然后在chrome的开发者工具那块debug。具体用法和注意事项请参照项目源码那边的README。

不贴下代码好像不地道,这是项目的核心文件entry的代码,包括实现readline()和print()函数:

/*加载js文件*/
var excute = function(){
    var script = document.createElement("script");
    script.src = "./code/demo.js";
    document.body.appendChild(script);
}


/*读取一行数据*/
var readline = function () {
    var data = "
" + document.getElementById("data").value + "
";

    readline.count = ++readline.count || 1;

    var line = [],
        nNum =0;

    for(var i = 1,vlen = data.length; i < vlen; i++){
        if(data[i] === "
"){
            nNum +=1;
        }

        if(nNum === readline.count){
            for(var ii = i-1; data[ii] != "
"; ii--){
                line.push(data[ii]);
            }

            line = line.reverse();

            return line.join("");   //返回的是字符串类型
            //break;
        }
    }

}

/*重测数据*/
var repeat = function(){
    var con = document.getElementById("data").value;
    readline.count = undefined;
    document.getElementById("result").innerHTML = "";
}

/*更新页面 清空输入框*/
var update = function () {
        window.location = "./entry.html";
}

/*输出函数*/
var print = function (data) {
    //console.log(data);
    document.getElementById("result").innerHTML = "";
    document.getElementById("result").innerHTML = data;
}

这个工具的初衷是能愉快的用牛客网的那两个api,在线下调试Js代码,想要的就拿去吧,希望能start鼓励一下,还有很多不足,以后有时间慢慢完善吧。大佬轻喷,菜鸟一枚。

项目地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88508.html

相关文章

  • 用于客网Javascript v8引擎评测机的本地测试页面

    摘要:用于牛客网引擎评测机的本地测试页面项目地址功能和界面等尚不完善,故欢迎提出各种意见为什么做这个蓝桥赛后无所事事随便做题发现牛客网允许使用提交,并定义了专有输入输出方法和,但是并没有提供靠谱测试的随意测试的环境作为一个自诩为前端汪的大专学渣 用于牛客网 v8引擎评测机的本地测试页面 项目地址 GitHub https://github.com/iamapig120...Gitee htt...

    zzbo 评论0 收藏0
  • 刷题时js的输入问题总结

    摘要:牛客网其中只支持单行输入赛码网注意,如果一行超过个字符,会被强制分行的,因此如果题目明确说明该行超过字符,请自行拼接当然,我们尽量不出这种题目。 刷题时js的输入问题总结大部分来自于 http://www.cnblogs.com/floor/... 感谢解决燃眉之急 还有小部分是自己的整理和思考 目前常见平台还不太支持ES6写法 推荐js刷题平台 https://www.codewa...

    Hancock_Xu 评论0 收藏0
  • 客网JS(nodeJS)单行、多行输入和输出

    摘要:实现牛客网的输入和输出在牛客网上,用做笔试的童鞋首先要做的事情就是学会如何输入和输出。下面再根据要求对每一行数据进行处理,比如类似于单行输入将每一行数据按照空格转换为数组等输出你的结果 nodeJS实现牛客网的输入和输出 在牛客网上,用js做笔试的童鞋首先要做的事情就是学会如何输入和输出。否则就算看得懂题也无法通过笔试。话不多少,我们直接开始: 1、选择语言showImg(https:...

    ybak 评论0 收藏0
  • 客网】-- 日日刷(第四天)

    摘要:断更了,家里出了一点事情,回家了几天,然后回头看发现握草,断了天,因此,每天补一个吧下列符号中可以在程序里表示单行注释的是个人见解选项目前我只在语法中使用过,代表注释的意思选项是多行注释选项是单行注释选项是文档注释在方法中给出的整型数组 断更了,家里出了一点事情,回家了几天,然后回头看发现握草,断了12天,因此,每天补一个吧 ==============================...

    sunsmell 评论0 收藏0
  • 前端开发应届生面试指南(含各大公司具体指南及面试真题)

    摘要:先介绍一下本人应届前端开发一枚,非科班出身,专业是化学,大学期间开始自学前端开发,在今年春招实习和秋招的时候投了一些公司,拿到一些京东拼多多虎牙等,总体来说还算满意,特地写一篇文章来总结一下面试的那些套路。 showImg(https://segmentfault.com/img/remote/1460000011897700); 先介绍一下本人应届前端开发一枚,非科班出身,专业是化学...

    sunnyxd 评论0 收藏0

发表评论

0条评论

wqj97

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<