1. var letterCombinations = function (digits) {
    2. if (!digits) return []
    3. const map = new Map([
    4. ["1", ""],
    5. ["2", "abc"],
    6. ["3", "def"],
    7. ["4", "ghi"],
    8. ["5", "jkl"],
    9. ["6", "mno"],
    10. ["7", "pqrs"],
    11. ["8", "tuv"],
    12. ["9", "wxyz"],
    13. ])
    14. const list = []
    15. backtrack(list, "", 0)
    16. return list
    17. function backtrack(list, temp, num) {
    18. if (num === digits.length) {
    19. list.push(temp)
    20. return
    21. }
    22. const cur = map.get(digits[num])
    23. for (let i = 0; i < cur.length; i++) {
    24. temp += cur[i]
    25. backtrack(list, temp, num + 1)
    26. temp = temp.slice(0, -1)
    27. }
    28. }
    29. };