给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
/**
* @param {string} digits
* @return {string[]}
*/
var letterCombinations = function(digits) {
var hashMap = {
'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){
return []
}
if(digits.length < 2){
return hashMap[digits];
}
var letterArr = [];
for(var temp of digits){
letterArr.push(hashMap[temp])
}
var res = letterArr.reduce((prev, curv) => {
var temp = [];
prev.map( item1 => {
curv.map( item2 => {
temp.push(item1 + item2);
})
})
return temp;
})
return res;
};
← 爬楼梯 盛最多水的容器(双指针法) →