一、题目内容 中等
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例1:
输入:digits = “23” 输出:[“ad”,”ae”,”af”,”bd”,”be”,”bf”,”cd”,”ce”,”cf”]
示例2:
输入:digits = “” 输出:[]
示例3:
输入:digits = “2” 输出:[“a”,”b”,”c”]
二、解题思路
我们需要创建一个数字和字母的映射关系表。
遍历数字,找到第一个数字,搜索其对应的字母,选择其中一个。
然后找第二个数字,将题目的字母进行组合。
三、具体代码
/*** @param {string} digits* @return {string[]}*/const map = new Map([[0, ""],[1, ""],[2, "abc"],[3, "def"],[4, "ghi"],[5, "jkl"],[6, "mno"],[7, "pqrs"],[8, "tuv"],[9, "wxyz"],])var letterCombinations = function (digits) {const len = digits.length;const res = [];const path = [];if (len === 0) return res;const backTracking = (start) => {if (start === len) {res.push(path.join(''));return;}const letter = map.get(Number(digits[start]))for (let i = 0; i < letter.length; i++) {path.push(letter[i])backTracking(start + 1);path.pop()}}backTracking(0);return res;};
