摘要:??途W(wǎng)其中只支持單行輸入賽碼網(wǎng)注意,如果一行超過(guò)個(gè)字符,會(huì)被強(qiáng)制分行的,因此如果題目明確說(shuō)明該行超過(guò)字符,請(qǐng)自行拼接當(dāng)然,我們盡量不出這種題目。
刷題時(shí)js的輸入問(wèn)題總結(jié)
大部分來(lái)自于 http://www.cnblogs.com/floor/... 感謝解決燃眉之急 還有小部分是自己的整理和思考
目前常見(jiàn)平臺(tái)還不太支持ES6寫(xiě)法
推薦js刷題平臺(tái) https://www.codewars.com 這里支持es6
還有疑惑的問(wèn)題:
??途W(wǎng)是有兩套編譯環(huán)境的,v8和node,下面這些可以支持node方式,但是v8方式怎么處理多行的輸入問(wèn)題,還需要再找資料查一下。
處理單行輸入比較簡(jiǎn)單,通常刷題的網(wǎng)站都會(huì)給出說(shuō)明,按照說(shuō)明來(lái)編程一般不會(huì)有問(wèn)題。下面列舉??途W(wǎng)和賽碼網(wǎng)的說(shuō)明。
??途W(wǎng)V8
// 其中readline()只支持單行輸入 while(line=readline()){ var lines = line.split(" "); var a = parseInt(lines[0]); var b = parseInt(lines[1]); print(a+b); }
Node
var readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on("line", function(line){ var tokens = line.split(" "); console.log(parseInt(tokens[0]) + parseInt(tokens[1])); });賽碼網(wǎng)
var line; while(line = read_line()){ line = line.split(" "); print(parseInt(line[0]) + parseInt(line[1])); } //注意,如果一行超過(guò)1024個(gè)字符,會(huì)被強(qiáng)制分行的 //,因此如果題目明確說(shuō)明該行超過(guò)1024字符,請(qǐng)自行拼接(當(dāng)然,我們盡量不出這種題目)。 /* var next = ""; var line; while(line = read_line()){ next += line; } next中就是超過(guò)1024字符的該行字符串。 */牛客網(wǎng)示例
示例題目地址,可以自行嘗試一下
// 通過(guò)代碼 var readline = require("readline") const rl = readline.createInterface({ input:process.stdin, output:process.stdout }) rl.on("line", function(line) { var res = line.split("").reverse().join("") console.log(res) })
補(bǔ)充內(nèi)容:
處理多行輸入問(wèn)題 已知輸入行數(shù)"line"事件
每當(dāng)input流接收到行結(jié)束符( 、 、 )時(shí)觸發(fā)"line"事件,通常發(fā)生在用戶按下Enter鍵或者Return鍵。監(jiān)聽(tīng)器函數(shù)被調(diào)用時(shí)會(huì)帶上一個(gè)包含接收那一行輸入的字符串。如果不close,則不會(huì)停止對(duì)輸入的監(jiān)聽(tīng)。
line事件是每次換行時(shí)都會(huì)觸發(fā)(前提是沒(méi)有close),那么如果在已知行數(shù)的情況下,可以將輸入push到臨時(shí)數(shù)組中,直到一組數(shù)據(jù)全部push完成之后再對(duì)該數(shù)組做處理,到下一組時(shí)將該數(shù)組清空。
示例題目
// 通過(guò)代碼 var readline = require("readline") const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) var Num = 2 var inputs = [] rl.on("line", function(input) { inputs.push(input.trim()) // 滿足一組行數(shù)條件之后再進(jìn)行數(shù)據(jù)的處理 if(Num == inputs.length) { var res = [] var s1 = inputs[0].split("") var s2 = inputs[1].split("") var len = s1.length for (var i = 0; i < len; i++) { res.push(s1[i]) res.push(s2[len - i - 1]) } res = res.join("") console.log(res) inputs.length = 0 } })輸入行數(shù)不確定
這種類型題目大多是第一個(gè)輸入為數(shù)據(jù)的組數(shù),然后會(huì)輸入這幾組數(shù)據(jù),即為1+n模式。所以每組數(shù)據(jù)的第一個(gè)一定是接下來(lái)要獲取輸入的行數(shù),后面這部分相當(dāng)于已知行數(shù),只需要在上面的基礎(chǔ)上添加獲取行數(shù)邏輯即可。
示例題目
// 通過(guò)代碼 var readline = require("readline") const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) var num = 0 var inputs = [] rl.on("line", function(line) { if(num == 0) { // 這里其實(shí)Number也可以,但是這里只需要整數(shù),所以直接用了parserInt num = parseInt(line.trim()) } else { inputs.push(line.trim()) if(num == inputs.length) { var res inputs.sort(function(a, b) { return a - b }) if(num % 2) { res = inputs[(num - 1) / 2] } else { // 這里要注意轉(zhuǎn)化一下 不然會(huì)拼接成字符串 res = Math.floor((parseInt(inputs[num / 2]) + parseInt(inputs[num / 2 - 1])) / 2) } console.log(res) // 不要忘記清空 inputs.length = 0 num = 0 } } })
ps:校招季到了,復(fù)習(xí)的時(shí)候發(fā)現(xiàn)很多東西其實(shí)似懂非懂,還是要把看過(guò)學(xué)過(guò)的東西真真正正自己動(dòng)手敲一遍,給自己再講一遍才可以。給自己攢人品~祝小伙伴們都順利~找到滿意的工作哈~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84837.html
摘要:解法目的就是把一個(gè)數(shù)組中所有為的數(shù)移動(dòng)到數(shù)組的尾部,并保證其他元素相對(duì)位置不變。要求是在原數(shù)組上修改,不要額外引入其他的數(shù)組盡量減少操作次數(shù)。在小游戲中,設(shè)置了和界面一致的二維數(shù)組,數(shù)組的每一位記錄了一個(gè)數(shù)字。 地址:https://leetcode.com/problems/move-zeroes/ 應(yīng)用場(chǎng)景說(shuō)明 這個(gè)題是很Easy的一道題,它的應(yīng)用場(chǎng)景是在我嘗試寫(xiě)小游戲2048時(shí),...
摘要:很多前端同學(xué)在看到數(shù)據(jù)結(jié)構(gòu)和算法后會(huì)有一定的抵觸心理,或者嘗試去練習(xí),但是被難倒,從而放棄。本文選擇的數(shù)據(jù)結(jié)構(gòu)和算法的類別均是出現(xiàn)頻率最高,以及應(yīng)用最廣的類別。面試這是非?,F(xiàn)實(shí)的一點(diǎn),也是很多前端學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法的原因。 一、導(dǎo)讀 據(jù)我了解,前端程序員有相當(dāng)一部分對(duì)數(shù)據(jù)結(jié)構(gòu)和算法的基礎(chǔ)概念都不是很清晰,這直接導(dǎo)致很多人在看到有關(guān)這部分的內(nèi)容就會(huì)望而卻步。 實(shí)際上,當(dāng)你了解了數(shù)據(jù)結(jié)構(gòu)和...
摘要:第一遞歸函數(shù)功能假設(shè)的功能是求第項(xiàng)的值,代碼如下找出遞歸結(jié)束的條件顯然,當(dāng)或者我們可以輕易著知道結(jié)果。定義遞歸函數(shù)功能假設(shè)函數(shù)的功能是反轉(zhuǎn)但鏈表,其中表示鏈表的頭節(jié)點(diǎn)??赡芎芏嗳嗽诖笠坏臅r(shí)候,就已經(jīng)接觸了遞歸了,不過(guò),我敢保證很多人初學(xué)者剛開(kāi)始接觸遞歸的時(shí)候,是一臉懵逼的,我當(dāng)初也是,給我的感覺(jué)就是,遞歸太神奇了! 可能也有一大部分人知道遞歸,也能看的懂遞歸,但在實(shí)際做題過(guò)程中,卻不知道怎么...
摘要:不是一下子能看完綜合使用編程是一番怎樣的體驗(yàn)學(xué)習(xí)筆記網(wǎng)站前端開(kāi)發(fā)基礎(chǔ)算法題如何優(yōu)雅地使用如何優(yōu)雅地使用零度博客碼農(nóng)網(wǎng)伯樂(lè)在線什么是頁(yè)面渲染國(guó)外先更到這,還有太多網(wǎng)址,先歸類一下再補(bǔ)充。 最近在復(fù)習(xí)JavaScript知識(shí)時(shí)遇到以前就不懂的閉包、上下文,雖然比以前理解深了一點(diǎn),但還是懵,想緩一下。。就去看了其他。。把Git、Grunt、Gulp、jQuery、jQuery UI、Reac...
閱讀 1890·2021-11-12 10:36
閱讀 2330·2021-09-01 10:29
閱讀 2360·2019-08-30 15:56
閱讀 1029·2019-08-30 12:56
閱讀 2358·2019-08-26 13:58
閱讀 2280·2019-08-23 18:38
閱讀 1502·2019-08-23 18:32
閱讀 2115·2019-08-23 16:53