摘要:牛客網(wǎng)為了滿足我們用寫編程題的愿望,在那塊,給提供了和兩個方法,用來讀取輸入和輸出但很明顯,這只能在它提供的編碼頁面才能用,我們想線下使用,而且想進行是更不可能的。
項目地址
正直秋招季,對找工作的人來說,牛客網(wǎng)肯定不陌生,現(xiàn)在很多大型互聯(lián)網(wǎng)公司的在線筆試都是在??途W(wǎng)上面進行的(好像有打廣告的嫌疑)。
Js有那么多的操作數(shù)據(jù)結(jié)構(gòu)的api,ES6新增的那些set、map數(shù)據(jù)結(jié)構(gòu)和其它的比如Array.from()這么方便的東西。作為一名想成為前端程序員的菜鳥,就想好好的用Js寫編程題,奈何都知道,Js局限性,對數(shù)據(jù)的讀取和輸出都得靠頁面來實現(xiàn),當(dāng)然也可以console,只是不符合我們現(xiàn)在需要的使用場景。
牛客網(wǎng)為了滿足我們用Js寫編程題的愿望,在Javascript v8那塊,給提供了readline()和print()兩個方法,用來讀取輸入和輸出:
但很明顯,這只能在它提供的編碼頁面才能用,我們想線下使用,而且想進行debug是更不可能的。怎么辦?想用Js寫題目又不能保證代碼一次寫對,想debug又無從下手。然后一堆人轉(zhuǎn)用C++、Java去了。但本菜鳥就是想用Js寫,怎么辦?只能自己仿照那兩個函數(shù)(readline()和print())實現(xiàn)其功能了,寫一個線下的調(diào)試頁面,本地js代碼放上去調(diào)試,完了之后直接復(fù)制黏貼代碼到牛客網(wǎng)就行了。
效果演示:
先說下,代碼很簡陋,基本思路就是一個頁面兩個框,一個用來輸入數(shù)據(jù)--readline(),一個用來顯示執(zhí)行結(jié)果--print()。要調(diào)試的Js文件得自己在entry.js文件中引入,然后在chrome的開發(fā)者工具那塊debug。具體用法和注意事項請參照項目源碼那邊的README。
不貼下代碼好像不地道,這是項目的核心文件entry的代碼,包括實現(xiàn)readline()和print()函數(shù):
/*加載js文件*/ var excute = function(){ var script = document.createElement("script"); script.src = "./code/demo.js"; document.body.appendChild(script); } /*讀取一行數(shù)據(jù)*/ 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; } } } /*重測數(shù)據(jù)*/ var repeat = function(){ var con = document.getElementById("data").value; readline.count = undefined; document.getElementById("result").innerHTML = ""; } /*更新頁面 清空輸入框*/ var update = function () { window.location = "./entry.html"; } /*輸出函數(shù)*/ var print = function (data) { //console.log(data); document.getElementById("result").innerHTML = ""; document.getElementById("result").innerHTML = data; }
這個工具的初衷是能愉快的用??途W(wǎng)的那兩個api,在線下調(diào)試Js代碼,想要的就拿去吧,希望能start鼓勵一下,還有很多不足,以后有時間慢慢完善吧。大佬輕噴,菜鳥一枚。
項目地址
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88508.html
摘要:用于??途W(wǎng)引擎評測機的本地測試頁面項目地址功能和界面等尚不完善,故歡迎提出各種意見為什么做這個藍橋賽后無所事事隨便做題發(fā)現(xiàn)??途W(wǎng)允許使用提交,并定義了專有輸入輸出方法和,但是并沒有提供靠譜測試的隨意測試的環(huán)境作為一個自詡為前端汪的大專學(xué)渣 用于牛客網(wǎng) v8引擎評測機的本地測試頁面 項目地址 GitHub https://github.com/iamapig120...Gitee htt...
摘要:??途W(wǎng)其中只支持單行輸入賽碼網(wǎng)注意,如果一行超過個字符,會被強制分行的,因此如果題目明確說明該行超過字符,請自行拼接當(dāng)然,我們盡量不出這種題目。 刷題時js的輸入問題總結(jié)大部分來自于 http://www.cnblogs.com/floor/... 感謝解決燃眉之急 還有小部分是自己的整理和思考 目前常見平臺還不太支持ES6寫法 推薦js刷題平臺 https://www.codewa...
摘要:實現(xiàn)??途W(wǎng)的輸入和輸出在??途W(wǎng)上,用做筆試的童鞋首先要做的事情就是學(xué)會如何輸入和輸出。下面再根據(jù)要求對每一行數(shù)據(jù)進行處理,比如類似于單行輸入將每一行數(shù)據(jù)按照空格轉(zhuǎn)換為數(shù)組等輸出你的結(jié)果 nodeJS實現(xiàn)??途W(wǎng)的輸入和輸出 在??途W(wǎng)上,用js做筆試的童鞋首先要做的事情就是學(xué)會如何輸入和輸出。否則就算看得懂題也無法通過筆試。話不多少,我們直接開始: 1、選擇語言showImg(https:...
摘要:斷更了,家里出了一點事情,回家了幾天,然后回頭看發(fā)現(xiàn)握草,斷了天,因此,每天補一個吧下列符號中可以在程序里表示單行注釋的是個人見解選項目前我只在語法中使用過,代表注釋的意思選項是多行注釋選項是單行注釋選項是文檔注釋在方法中給出的整型數(shù)組 斷更了,家里出了一點事情,回家了幾天,然后回頭看發(fā)現(xiàn)握草,斷了12天,因此,每天補一個吧 ==============================...
摘要:先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學(xué),大學(xué)期間開始自學(xué)前端開發(fā),在今年春招實習(xí)和秋招的時候投了一些公司,拿到一些京東拼多多虎牙等,總體來說還算滿意,特地寫一篇文章來總結(jié)一下面試的那些套路。 showImg(https://segmentfault.com/img/remote/1460000011897700); 先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學(xué)...
閱讀 2781·2021-10-14 09:42
閱讀 838·2021-10-11 10:57
閱讀 785·2019-08-30 15:54
閱讀 1927·2019-08-30 13:50
閱讀 1693·2019-08-30 11:19
閱讀 943·2019-08-29 12:38
閱讀 1435·2019-08-26 11:51
閱讀 1401·2019-08-26 10:48