给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
/**
* @param {string} digits
* @return {string[]}
*/
var letterCombinations = function(digits) {
if(digits.length==0){
return [];
}
var phoneMap = {
2:'abc',
3:'def',
4:'ghi',
5:'jkl',
6:'mno',
7:'pqrs',
8:'tuv',
9:'wxyz',
};
var backtrack = function(index){
if(index == digits.length){
combinations.push(combination.join(""));
}else{
var digit=digits[index];
for(var k in phoneMap[digit]){
var str = phoneMap[digit];
combination.push(str[k]);
backtrack(index+1);
combination.pop();
}
}
}
var combination = [];
var combinations = [];
backtrack(0);
return combinations;
};