Journal Archive

/**
 * @param {string} digits
 * @return {string[]}
 */
var letterCombinations = function(digits) {
    if (digits.length < 1) return [];
    const letters = ["","",["a","b","c"],["d","e","f"]
                    ,["g","h","i"],["j","k","l"],["m","n","o"]
                    ,["p","q","r","s"],["t","u","v"],["w","x","y", "z"]];
    const arr = digits.split("").map(n => letters[parseInt(n, 10)]);
    return arr.reduce((result, a) => {
        let res = [];
        for (let i = 0; i < result.length; i++) {
            for (let j = 0; j < a.length; j++) {
                res.push(result[i] + a[j]);
            }
        }
        return res;
    })
}

Day 43: Solving one of LeetCode problems

17. Letter Combinations of a Phone Number Difficulty - Medium

Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.

A mapping of digit 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"]