怪奇物语

怪奇物语

首页 新随笔 联系 管理
export {};

const result = letterCombinations("23");
console.log(result);


function letterCombinations(digits: string) {
  const map:string[] = [
    "",
    "",
    "abc",
    "def",
    "ghi",
    "jkl",
    "mno",
    "pqrs",
    "tuv",
    "wxyz",
  ];
  // 没考虑特殊情况,为空为1的情况,这里可以加上这些情况
  // 结果集
  const res:string[] = [];
  // 路径集
  const path:string[] = [];

  backtracking(digits, digits.length,0);
  return res;

  function backtracking(digits:string, depth:number,h:number) {
    // 路径的长度等于深度,则表示遍历到叶子结点,然后返回结果
    if (path.length === depth) {
      res.push(path.join(''));
      return;
    }

    // for循环是横向遍历
    // for循环也可以理解成一个取值(或选择)的过程
    for (let v  of map[Number.parseInt(digits[h])]) {
      path.push(v)
      backtracking(digits,depth,h+1) //递归
      path.pop() //回溯
    }
  }
}
posted on 2022-10-24 11:23  超级无敌美少男战士  阅读(52)  评论(0)    收藏  举报