国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)

這篇具有很好參考價(jià)值的文章主要介紹了【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

個(gè)人簡(jiǎn)介

??個(gè)人主頁(yè): 前端雜貨鋪
???♂?學(xué)習(xí)方向: 主攻前端方向,也會(huì)涉及到服務(wù)端(Node.js)
??個(gè)人狀態(tài): 在校大學(xué)生一枚,已拿多個(gè)前端 offer(秋招)
??未來(lái)打算: 為中國(guó)的工業(yè)軟件事業(yè)效力 n 年
??推薦學(xué)習(xí):??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/3項(xiàng)目實(shí)戰(zhàn) ??Node.js??Three.js ??JS版算法
??個(gè)人推廣:每篇文章最下方都有加入方式,旨在交流學(xué)習(xí)&資源分享,快加入進(jìn)來(lái)吧

【JavaScript版算法】系列文章目錄

內(nèi)容 參考鏈接
JavaScript 數(shù)據(jù)結(jié)構(gòu)與算法 總目錄
JavaScript 數(shù)據(jù)結(jié)構(gòu)與算法 字符串類(反轉(zhuǎn)字符串中的單詞)
JavaScript 數(shù)據(jù)結(jié)構(gòu)與算法 字符串類(計(jì)算二進(jìn)制子串)


題目:電話號(hào)碼的字符組合

【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)


知識(shí)點(diǎn)匯總

String.prototype.split

split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。

let str = '23'
console.log(str.split("")) // ['2', '3']

Array.prototype.splice

splice() 方法用于添加或刪除數(shù)組中的元素。

let nums = ['2000', '2001', '2022', '2023']
console.log(nums.splice(2, 1, "前端", "雜貨鋪")) // ['2022']
console.log(nums) // ['2000', '2001', '前端', '雜貨鋪', '2023']

測(cè)試用例

我們使用題目中的測(cè)試用例進(jìn)行測(cè)試,并新增一個(gè)新測(cè)試用例(按下兩個(gè)鍵和三個(gè)鍵的測(cè)試用例)

import telComb from '../../code/array/lesson1'

// 按下兩個(gè)鍵的測(cè)試用例
test('telComb:23', () => {
  expect(telComb('23')).toEqual(['ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf'])
})

// 按下三個(gè)鍵的測(cè)試用例
test('telComb:234', () => {
  expect(telComb('234')).toEqual([
    'adg', 'adh', 'adi',
    'aeg', 'aeh', 'aei',
    'afg', 'afh', 'afi',
    'bdg', 'bdh', 'bdi',
    'beg', 'beh', 'bei',
    'bfg', 'bfh', 'bfi',
    'cdg', 'cdh', 'cdi',
    'ceg', 'ceh', 'cei',
    'cfg', 'cfh', 'cfi'
  ])
})

題目解法

當(dāng)按下了兩個(gè)鍵,直接進(jìn)行組合

【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)

當(dāng)按下了三個(gè)鍵,先對(duì)前兩個(gè)鍵進(jìn)行組合,再和第三個(gè)鍵組合

【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)

【參考圖片:https://coding.imooc.com/lesson/315.html#mid=22111】

export default (str) => {
  // 建立電話號(hào)碼鍵盤(pán)映射(每一個(gè)鍵代表的內(nèi)容)
  let map = ['', '1', 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz']
  // 把輸入字符串按單字符分隔變成數(shù)組 234 => [2, 3, 4]
  let num = str.split('')
  // 保存鍵盤(pán)映射后的字母內(nèi)容 23 => ['abc', 'def']
  let code = []
  num.forEach(item => {
    if (map[item]) {
      code.push(map[item])
    }
  })
  // 按鍵,并進(jìn)行組合
  let comb = (arr) => {
    // 臨時(shí)變量用來(lái)保存前兩個(gè)組合的結(jié)果
    let tmp = []
    // 最外層的循環(huán)是遍歷的第一個(gè)元素,里層的循環(huán)是遍歷的第二個(gè)元素
    for (let i = 0, il = arr[0].length; i < il; i++) {
      for (let j = 0, jl = arr[1].length; j < jl; j++) {
        tmp.push(`${arr[0][i]}${arr[1][j]}`)
      }
    }
    // 從位置0刪除前兩個(gè)元素,之后添加tmp
    arr.splice(0, 2, tmp)
    // 此時(shí)若 arr 的長(zhǎng)度大于 1,則表示還有按鍵沒(méi)有處理,需要遞歸
    if (arr.length > 1) {
      // 遞歸
      comb(arr)
    } else {
      return tmp
    }
    return arr[0]
  }
  return comb(code)
}

【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)


【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-469676.html


到了這里,關(guān)于【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】數(shù)組類(電話號(hào)碼的字符組合)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JavaScript中的數(shù)據(jù)結(jié)構(gòu)和算法

    JavaScript不僅是一門(mén)用于網(wǎng)頁(yè)交互的腳本語(yǔ)言,還可以用于編寫(xiě)高效的數(shù)據(jù)結(jié)構(gòu)和算法。在本文中,我們將介紹JavaScript中可用的數(shù)據(jù)結(jié)構(gòu)和常見(jiàn)的算法,并說(shuō)明它們?cè)趯?shí)際應(yīng)用中的用途和性能。 數(shù)據(jù)結(jié)構(gòu) 數(shù)組 數(shù)組是JavaScript中最常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)之一,可以用來(lái)存儲(chǔ)和訪問(wèn)一系

    2024年02月01日
    瀏覽(23)
  • 【算法 & 高級(jí)數(shù)據(jù)結(jié)構(gòu)】樹(shù)狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(一)

    【算法 & 高級(jí)數(shù)據(jù)結(jié)構(gòu)】樹(shù)狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(一)

    ?? 個(gè)人主頁(yè) :為夢(mèng)而生~ 關(guān)注我一起學(xué)習(xí)吧! ?? 專欄 :算法題、 基礎(chǔ)算法~趕緊來(lái)學(xué)算法吧 ?? 往期推薦 : 【算法基礎(chǔ) 數(shù)學(xué)】快速冪求逆元(逆元、擴(kuò)展歐幾里得定理、小費(fèi)馬定理) 【算法基礎(chǔ)】深搜 樹(shù)狀數(shù)組 (Binary Indexed Tree,BIT)是一種數(shù)據(jù)結(jié)構(gòu),用于高效地處理

    2024年03月11日
    瀏覽(27)
  • 【算法 & 高級(jí)數(shù)據(jù)結(jié)構(gòu)】樹(shù)狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(二)

    【算法 & 高級(jí)數(shù)據(jù)結(jié)構(gòu)】樹(shù)狀數(shù)組:一種高效的數(shù)據(jù)結(jié)構(gòu)(二)

    ?? 個(gè)人主頁(yè) :為夢(mèng)而生~ 關(guān)注我一起學(xué)習(xí)吧! ?? 專欄 :算法題、 基礎(chǔ)算法、數(shù)據(jù)結(jié)構(gòu)~趕緊來(lái)學(xué)算法吧 ?? 往期推薦 : 【算法基礎(chǔ) 數(shù)學(xué)】快速冪求逆元(逆元、擴(kuò)展歐幾里得定理、小費(fèi)馬定理) 【算法基礎(chǔ)】深搜 數(shù)據(jù)結(jié)構(gòu)各內(nèi)部排序算法總結(jié)對(duì)比及動(dòng)圖演示(插入排序

    2024年03月26日
    瀏覽(24)
  • 數(shù)據(jù)結(jié)構(gòu)與算法(一): 稀疏數(shù)組

    數(shù)據(jù)結(jié)構(gòu)與算法(一): 稀疏數(shù)組

    在五子棋游戲或類似的游戲中,我們可以把整個(gè)棋盤(pán)想象成是一個(gè)有規(guī)律的二維數(shù)組,其值由0、1、2三個(gè)數(shù)字組成,0代表空白區(qū)域,1代表白子,2代表黑子。這種情況:即當(dāng)一個(gè)數(shù)組中大部分元素為0或者為同一值時(shí),存儲(chǔ)該數(shù)組數(shù)據(jù)可以使用稀疏數(shù)組來(lái)對(duì)原始數(shù)組進(jìn)行精簡(jiǎn),

    2024年02月11日
    瀏覽(37)
  • 數(shù)據(jù)結(jié)構(gòu)與算法 | 數(shù)組(Array)

    數(shù)據(jù)結(jié)構(gòu)與算法 | 數(shù)組(Array)

    數(shù)組(Array)應(yīng)該是最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)之一,它由相同類型的元素組成的集合,并按照一定的順序存儲(chǔ)在內(nèi)存中。每個(gè)元素都有一個(gè)唯一的索引,可以用于訪問(wèn)該元素。 數(shù)組索引(Index): 數(shù)組中的每個(gè)元素都有一個(gè)唯一的整數(shù)索引,從0開(kāi)始計(jì)數(shù)。索引用于訪問(wèn)數(shù)組中的元素

    2024年02月08日
    瀏覽(57)
  • 數(shù)據(jù)結(jié)構(gòu)與算法--javascript(持續(xù)更新中...)

    數(shù)據(jù)結(jié)構(gòu)與算法--javascript(持續(xù)更新中...)

    1. 數(shù)據(jù)結(jié)構(gòu) 隊(duì)列: 一種遵循 先進(jìn)先出 (FIFO / First In First Out) 原則的一組有序的項(xiàng);隊(duì)列在尾部添加新元素,并從頭部移除元素。最新添加的元素必須排在隊(duì)列的末尾。 (例如:去食堂排隊(duì)打飯,排在前面的人先打到飯,先離開(kāi);排在后面的人后打到飯,后離開(kāi)。) 棧: 一

    2024年02月16日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)和算法】尋找數(shù)組的中心下標(biāo)

    【數(shù)據(jù)結(jié)構(gòu)和算法】尋找數(shù)組的中心下標(biāo)

    Java基礎(chǔ)合集 數(shù)據(jù)結(jié)構(gòu)與算法合集 設(shè)計(jì)模式合集 多線程合集 分布式合集 ES合集 其他系列文章導(dǎo)航 文章目錄 前言 一、題目描述 二、題解 2.1 前綴和的解題模板 2.1.1 最長(zhǎng)遞增子序列長(zhǎng)度 2.1.2 尋找數(shù)組中第 k 大的元素 2.1.3 最長(zhǎng)公共子序列長(zhǎng)度 2.1.4 尋找數(shù)組中第 k 小的元素 2

    2024年02月04日
    瀏覽(27)
  • 數(shù)據(jù)結(jié)構(gòu)與算法-數(shù)組(附阿里面試題)

    ??????? 給你一個(gè)文件里面包含全國(guó)人民(14億)的年齡數(shù)據(jù)(0~180),現(xiàn)在要你統(tǒng)計(jì)每一個(gè)年齡?? 有多少人? ???????? 給定機(jī)器為 單臺(tái)+2CPU+2G內(nèi)存。不得使用現(xiàn)成的容器,比如map等。 (這一句可以忽略) ????????在以上情況下你該如何以最高效的方法來(lái)解決這個(gè)

    2024年02月13日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)和算法】使用數(shù)組的結(jié)構(gòu)實(shí)現(xiàn)鏈表(單向或雙向)

    【數(shù)據(jù)結(jié)構(gòu)和算法】使用數(shù)組的結(jié)構(gòu)實(shí)現(xiàn)鏈表(單向或雙向)

    上文我們通過(guò)結(jié)構(gòu)體的結(jié)構(gòu)實(shí)現(xiàn)了隊(duì)列 、以及循環(huán)隊(duì)列的實(shí)現(xiàn),我們或許在其他老師的教學(xué)中,只學(xué)到了用結(jié)構(gòu)體的形式來(lái)實(shí)現(xiàn)鏈表、隊(duì)列、棧等數(shù)據(jù)結(jié)構(gòu),本文我想告訴你的是,我們 可以使用數(shù)組的結(jié)構(gòu)實(shí)現(xiàn)鏈表、單調(diào)棧、單調(diào)隊(duì)列 目錄 前言 一、用數(shù)組結(jié)構(gòu)的好處 1.數(shù)

    2024年01月20日
    瀏覽(96)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之查找: 順序查找 (Javascript版)

    順序查找 思路 遍歷數(shù)組 找到跟目標(biāo)值相等元素,就返回它的下標(biāo) 沒(méi)有找到,返回-1 算法實(shí)現(xiàn) 總結(jié) 非常低效,算是入門(mén)搜索 時(shí)間復(fù)雜度:O(n) 對(duì)于數(shù)組結(jié)構(gòu)或鏈表結(jié)構(gòu)而言,沒(méi)什么太多可說(shuō)的

    2024年02月05日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包