var letterCombinations = function (digits) {
if (!digits) return []
const map = new Map([
["1", ""],
["2", "abc"],
["3", "def"],
["4", "ghi"],
["5", "jkl"],
["6", "mno"],
["7", "pqrs"],
["8", "tuv"],
["9", "wxyz"],
])
const list = []
backtrack(list, "", 0)
return list
function backtrack(list, temp, num) {
if (num === digits.length) {
list.push(temp)
return
}
const cur = map.get(digits[num])
for (let i = 0; i < cur.length; i++) {
temp += cur[i]
backtrack(list, temp, num + 1)
temp = temp.slice(0, -1)
}
}
};