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