成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

刷題時(shí)js的輸入問(wèn)題總結(jié)

Hancock_Xu / 2368人閱讀

摘要:??途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)題,還需要再找資料查一下。

處理單行輸入問(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)容:

"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)。

處理多行輸入問(wèn)題 已知輸入行數(shù)

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

相關(guān)文章

  • leetcode刷題:283.Move Zeroes(Easy)

    摘要:解法目的就是把一個(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í),...

    ckllj 評(píng)論0 收藏0
  • 前端該如何準(zhǔn)備數(shù)據(jù)結(jié)構(gòu)和算法?

    摘要:很多前端同學(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)和...

    simon_chen 評(píng)論0 收藏0
  • 為什么你學(xué)不會(huì)遞歸?刷題幾個(gè)月,告別遞歸,談?wù)勎?em>的經(jīng)驗(yàn)

    摘要:第一遞歸函數(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ò)程中,卻不知道怎么...

    Achilles 評(píng)論0 收藏0
  • 前端開(kāi)發(fā)學(xué)習(xí)-網(wǎng)址記錄

    摘要:不是一下子能看完綜合使用編程是一番怎樣的體驗(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...

    CatalpaFlat 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<