Letter Combinations of a Phone Number
Problem
Given a string containing digits from
2-9inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Example 1:
Input: digits = "23" Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]Example 2:
Input: digits = "" Output: []Example 3:
Input: digits = "2" Output: ["a","b","c"]
Pseudocode
- combination, backpedelling
- dfs, pre-push, recurse, post-popSolution
// from solution page, clean code dfs
var letterCombinations = function (digits, res = [], level = 0, combo = []) {
  const map = {
    2: "abc",
    3: "def",
    4: "ghi",
    5: "jkl",
    6: "mno",
    7: "pqrs",
    8: "tuv",
    9: "wxyz",
  };
  // base condition
  if (!digits) {
    return [];
  }
  // base condition
  if (digits.length === level) {
    res.push(combo.join(""));
    return;
  }
  // digits is str, is iterable with level/index "23" - starts with "2" level = 0
  for (const c of map[digits[level]]) {
    // pre
    combo.push(c);
    // recurse
    letterCombinations(digits, res, level + 1, combo);
    // post
    combo.pop();
  }
  return res;
};
Time and Space Complexity
Time
What did the code do
Total -
Space
What did the code do
Total -
Last updated
