JS實現(xiàn)電話號碼的字母組合算法示例
本文實例講述了JS實現(xiàn)電話號碼的字母組合算法。分享給大家供大家參考,具體如下:
給定一個僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合。
給出數(shù)字到字母的映射如下(與電話按鍵相同)。注意 1 不對應(yīng)任何字母。

示例:
輸入:"23"
輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
說明:
盡管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。
var letterCombinations = function(digits) {
const mappings = {
'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']
};
if (!digits || digits.length === 0) return [];
if (digits.length === 1) {
return mappings[digits];
}
let result = [];
let set1 = letterCombinations(digits.substr(0, 1));
let set2 = letterCombinations(digits.substr(1));
for (let i = 0; i < set1.length; i++) {
for (let j = 0; j < set2.length; j++) {
result.push(set1[i] + set2[j]);
}
}
return result;
};
console.log(letterCombinations('23'))
var letterCombinations1 = function(digits) {
var map = {
"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 rtn = map[digits[0]];
digits = digits.substr(1);
digits.split("").forEach(function(digit) {
var t = [];
map[digit].forEach(function(letter) {
t = t.concat(rtn.map(function(item) {
return item + letter;
}));
});
rtn = t;
});
return rtn === undefined ? [] : rtn;
};
console.log(letterCombinations1('32'))
使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行結(jié)果:

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- JavaScript代碼簡單實現(xiàn)求楊輝三角給定行的最大值
- JS實現(xiàn)的合并兩個有序鏈表算法示例
- JS實現(xiàn)判斷有效的數(shù)獨算法示例
- JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之檢索算法示例【二分查找法、計算重復(fù)次數(shù)】
- JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之檢索算法實例分析【順序查找、最大最小值、自組織查詢】
- JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹遍歷算法詳解【先序、中序、后序】
- JavaScript實現(xiàn)的拼圖算法分析
- JS使用Dijkstra算法求解最短路徑
- JavaScript實現(xiàn)連連看連線算法
- JS實現(xiàn)的楊輝三角【帕斯卡三角形】算法示例
相關(guān)文章
Quasar Input:type="number" 去掉上下小箭頭 實現(xiàn)加減按鈕樣式功能
這篇文章主要介紹了Quasar Input:type="number" 去掉上下小箭頭 實現(xiàn)加減按鈕樣式,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
JavaScript中for of和for in的區(qū)別詳解
對于初學(xué)者,我們或許只知道無論是for of還是for in他們都有一個功能那就是遍歷,至于具體的細(xì)節(jié)或許我們不是很清楚,那么接下來我們就來詳細(xì)的區(qū)分一下for of和for in他們之間的不同點和相同點,需要的朋友可以參考下2023-06-06

