Last updated on October 5th, 2024 at 08:52 pm
Here, We see Letter Combinations of a Phone Number LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
Topics
Backtracking, String
Companies
Amazon, Dropbox, Facebook, Google, Uber
Level of Question
Medium
Letter Combinations of a Phone Number LeetCode Solution
Table of Contents
Problem Statement
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 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”]
1. Letter Combinations of a Phone Number LeetCode Solution C++
class Solution { public: vector<string> letterCombinations(string digits) { if (digits.empty()) return {}; string phone_map[] = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; vector<string> output; backtrack("", digits, phone_map, output); return output; } private: void backtrack(string combination, string next_digits, string phone_map[], vector<string>& output) { if (next_digits.empty()) { output.push_back(combination); } else { string letters = phone_map[next_digits[0] - '2']; for (char letter : letters) { backtrack(combination + letter, next_digits.substr(1), phone_map, output); } } } };
2. Letter Combinations of a Phone Number LeetCode Solution Java
class Solution { public List<String> letterCombinations(String digits) { if (digits.isEmpty()) return Collections.emptyList(); String[] phone_map = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; List<String> output = new ArrayList<>(); backtrack("", digits, phone_map, output); return output; } private void backtrack(String combination, String next_digits, String[] phone_map, List<String> output) { if (next_digits.isEmpty()) { output.add(combination); } else { String letters = phone_map[next_digits.charAt(0) - '2']; for (char letter : letters.toCharArray()) { backtrack(combination + letter, next_digits.substring(1), phone_map, output); } } } }
3. Letter Combinations of a Phone Number Solution JavaScript
var letterCombinations = function(digits) { if (digits.length === 0) return []; const phone_map = ["abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"]; const output = []; backtrack("", digits, phone_map, output); return output; function backtrack(combination, next_digits, phone_map, output) { if (next_digits.length === 0) { output.push(combination); } else { const letters = phone_map[next_digits[0] - '2']; for (const letter of letters) { backtrack(combination + letter, next_digits.slice(1), phone_map, output); } } } };
4. Letter Combinations of a Phone Number Solution Python
class Solution(object): def letterCombinations(self, digits): if not digits: return [] phone_map = { '2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', '6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz' } def backtrack(combination, next_digits): if len(next_digits) == 0: output.append(combination) else: for letter in phone_map[next_digits[0]]: backtrack(combination + letter, next_digits[1:]) output = [] backtrack("", digits) return output