Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23"Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
手機九宮格按鍵,給出數(shù)字序列绽左,輸出所有可能的字母序列
就很直接的實現(xiàn)就好烘嘱,根據(jù)上一個按鍵的結(jié)果孤个,生成所有可能的本次按鍵的結(jié)果
var letterCombinations = function(digits) {
var num = digits.length;
if (num===0)
return [];
if (digits[0]==='0')
return [];
var map = [[],['*'],['a','b','c'],['d','e','f'],['g','h','i'],['j','k','l'],['m','n','o'],['p','q','r','s'],['t','u','v'],['w','x','y','z']];
var result = map[parseInt(digits[0])].concat();
for (let i = 1;i < num;i++) {
if (digits[i]==='0')
return [];
var mapNow = map[parseInt(digits[i])];
var lastLength = result.length;
for (let j = 0;j < lastLength;j++) {
var base = result.shift();
for (let k = 0;k < map[parseInt(digits[i])].length;k++) {
result.push(base+map[parseInt(digits[i])][k]);
}
}
}
return result;
};