17. Letter Combinations of a Phone Number
- Total Accepted: 103704
- Total Submissions: 333185
- Difficulty: Medium
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"].
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
Subscribe to see which companies asked this question
解题思路:反正这题不用递归的话,我会很烦。js做这种题真的,很方便。不用去申请string的长度限制。
/**
* @param {string} digits* @return {string[]}
*/
var map = [] , result = [] , _digits;
var letterCombinations = function(digits) {
map['0'] = ""; map['1'] = ""; map['2'] = "abc"; map["3"]="def";
map['4'] = "ghi"; map['5'] = 'jkl'; map['6'] = "mno"; map["7"]="pqrs"
map['8'] = "tuv"; map['9'] = "wxyz";
result =[];
_digits = digits;
helper("", 0 );
return result;
};
var helper = function(buildingString, index )
{
if(index == _digits.length)
{
console.log(buildingString)
if(buildingString.length>0) result.push(buildingString);
return;
}
var c = _digits[index];
var str = map[c-'0'];
console.log(str);
for (var i =0 ; i<str.length ; i++)
{
helper(buildingString+str[i], index+1);
}
}