【Leetcode】17. 電話號(hào)碼的字母組合

題目鏈接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/

總體思路:for循環(huán)內(nèi)部,字母自由組合嘛〗信郑可是特占,我要循環(huán)多少層呢雇锡?這要根據(jù)用戶的輸入的長(zhǎng)度決定揍拆,可是for循環(huán)的層數(shù)怎么動(dòng)態(tài)寫(xiě)哲虾?貌似不能芽淡。于是快速的瞄了一眼答案马绝。原來(lái)要用遞歸函數(shù)!U醴啤富稻!

使用遞歸函數(shù),判斷是否匹配到參數(shù)字符串(即下文的23)的盡頭白胀,是椭赋,則返回結(jié)果。不是或杠,則繼續(xù)搭配哪怔。

所以說(shuō)!當(dāng)我們遇到不具體的循環(huán)次數(shù)的時(shí)候,遞歸函數(shù)是一個(gè)很好的選擇认境。

以下是我的答案

const obj = {
    2: ["a", "b", "c"],
    3: ["d", "e", "f"],
    4: ["g", "h", "i"],
    5: ["j", "k", "l"],
    6: ["m", "n", "o"],
    7: ["p", "q", "r", "s"],
    8: ["t", "u", "v"],
    9: ["w", "x", "y", "z"],
}
var t=1
function digui(arr, str,res) {
    let resArr = []
    for (let i = 0; i < arr.length; i++){
        for (let j = 0; j < obj[str].length; j++){
            resArr.push(arr[i] + obj[str][j])
        }
    }   
    t++
    arr = resArr
    str = res[t]
    if (str) {
        digui(arr, str,res)
    }
    else {
        console.log(arr)
        return 0
    }
}

function outer(x) {
    let res = x.toString().split('')
    let arr = obj[res[0]]//第一個(gè)數(shù)字
    let str = res[t]
    digui(arr, str, res)
}
outer(234)

本來(lái)是想用還順便用閉包和匿名函數(shù)的胚委。然而匿名函數(shù)要怎么遞歸?
其實(shí)這個(gè)之前也復(fù)習(xí)過(guò)了叉信。使用argumentscallee方法就可以實(shí)現(xiàn)匿名函數(shù)的遞歸

arguments.callee(參數(shù))

寫(xiě)到這里亩冬,又發(fā)現(xiàn)了一些坑。

  • 第一個(gè)坑:如果這里沒(méi)有參數(shù)傳入硼身,直接寫(xiě)空括號(hào)的話硅急,是會(huì)報(bào)錯(cuò)的。畢竟arguments是管理參數(shù)的對(duì)象嘛佳遂。
    那沒(méi)有參數(shù)要怎么寫(xiě)营袜?親親,這邊建議您讶迁,不要用閉包+匿名函數(shù)+遞歸了哦连茧。可以像我上面那樣巍糯,拆開(kāi)寫(xiě)啸驯。

  • 第二個(gè)坑:在使用閉包,閉包作用域固然使它可以訪問(wèn)到閉包外部的變量祟峦,但是當(dāng)遇到這種情況時(shí)罚斗,

function outer() {
    let res = 23
    return function(res){
        console.log(res)  //undefined
}

知道了吧,閉包里面的res首先應(yīng)當(dāng)是傳入的參數(shù)的res宅楞,然后才是閉包外面的res

  • 第三個(gè)坑:使用一個(gè)對(duì)象裝載數(shù)字與字母的對(duì)應(yīng)信息不知道性能上怎么樣针姿?發(fā)現(xiàn)大佬都是用map的,所以又給自己留下個(gè)坑厌衙,會(huì)去看的距淫。畢竟秋招嘛,狹路相逢婶希,總會(huì)遇到這個(gè)知識(shí)點(diǎn)的榕暇。

  • 寫(xiě)在最后,leetcode的編輯器老是報(bào)錯(cuò)喻杈,說(shuō)找不到arr.length彤枢。搞到我提交不了代碼,真的是筒饰。會(huì)不會(huì)跟瀏覽器的什么嚴(yán)格模式有關(guān)缴啡。有空也要把這坑填了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓷们,一起剝皮案震驚了整個(gè)濱河市业栅,隨后出現(xiàn)的幾起案子秒咐,更是在濱河造成了極大的恐慌,老刑警劉巖碘裕,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件反镇,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡娘汞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)夕玩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)你弦,“玉大人,你說(shuō)我怎么就攤上這事燎孟∏葑鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵揩页,是天一觀的道長(zhǎng)旷偿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)爆侣,這世上最難降的妖魔是什么萍程? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮兔仰,結(jié)果婚禮上茫负,老公的妹妹穿的比我還像新娘。我一直安慰自己乎赴,他們只是感情好忍法,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著榕吼,像睡著了一般饿序。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上羹蚣,一...
    開(kāi)封第一講書(shū)人閱讀 49,729評(píng)論 1 289
  • 那天原探,我揣著相機(jī)與錄音,去河邊找鬼度宦。 笑死踢匣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戈抄。 我是一名探鬼主播离唬,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼划鸽!你這毒婦竟也來(lái)了输莺?” 一聲冷哼從身側(cè)響起戚哎,我...
    開(kāi)封第一講書(shū)人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嫂用,沒(méi)想到半個(gè)月后型凳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘱函,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年甘畅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片往弓。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疏唾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出函似,到底是詐尸還是另有隱情槐脏,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布撇寞,位于F島的核電站顿天,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蔑担。R本人自食惡果不足惜牌废,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啤握。 院中可真熱鬧畔规,春花似錦、人聲如沸恨统。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)畜埋。三九已至莫绣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悠鞍,已是汗流浹背对室。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咖祭,地道東北人掩宜。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像么翰,于是被迫代替她去往敵國(guó)和親牺汤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容