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

示例:
輸入:"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測試上述代碼,可得如下運行結果:

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數(shù)學運算用法總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript數(shù)組操作技巧總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
- JavaScript代碼簡單實現(xiàn)求楊輝三角給定行的最大值
- JS實現(xiàn)的合并兩個有序鏈表算法示例
- JS實現(xiàn)判斷有效的數(shù)獨算法示例
- JavaScript數(shù)據(jù)結構與算法之檢索算法示例【二分查找法、計算重復次數(shù)】
- JavaScript數(shù)據(jù)結構與算法之檢索算法實例分析【順序查找、最大最小值、自組織查詢】
- JavaScript數(shù)據(jù)結構與算法之二叉樹遍歷算法詳解【先序、中序、后序】
- JavaScript實現(xiàn)的拼圖算法分析
- JS使用Dijkstra算法求解最短路徑
- JavaScript實現(xiàn)連連看連線算法
- JS實現(xiàn)的楊輝三角【帕斯卡三角形】算法示例
相關文章
JS獲取下拉列表所選中的TEXT和Value的實現(xiàn)代碼
本篇文章主要是對JS獲取下拉列表所選中的TEXT和Value的實現(xiàn)代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01
利用javascript實現(xiàn)的三種圖片放大鏡效果實例(附源碼)
這篇文章主要介紹了利用javascript實現(xiàn)的幾種放大鏡效果,很實用一款漂亮的js圖片放大鏡特效,常見于電商網(wǎng)站上產(chǎn)品頁,用來放大展示圖片細節(jié),很有實用性,推薦下載學習研究。文中提供了完整的源碼供大家下載,需要的朋友可以參考借鑒,一起來看看吧。2017-01-01

