LeetcodeJul 10, 2025

Letter Combinations of a Phone Number

Hazrat Ali

Leetcode

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"]

Solution
const keyboard = [' ', '', 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz'];

/**
 * @param {string} digits
 * @return {string[]}
 */
const letterCombinations = digits => {
  if (!digits) {
    return [];
  }

  const results = [];
  backtracking(digits, 0, '', results);
  return results;
};

const backtracking = (digits, start, solution, results) => {
  if (start === digits.length) {
    return results.push(solution);
  }

  const index = parseInt(digits[start]);
  const keys = keyboard[index];

  for (let i = 0; i < keys.length; i++) {
    backtracking(digits, start + 1, solution + keys[i], results);
  }
};


Comments