Letter Combinations of a Phone Number – LeetCode Solutions

LeetCode has a Medium coding Problem in Its’ Algorithm Section “Letter Combinations of a Phone Number”. Today We are going to solve this problem in Python. LeetCode Link of the Problem is HERE


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.

Letter Combinations of a Phone Number


Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Input: digits = ""
Output: []
Input: digits = "2"
Output: ["a","b","c"]


  • 0 <= digits.length <= 4
  • digits[i] is a digit in the range ['2', '9'].

Solution to Letter Combinations of a Phone Number

class Solution(object):
    def letterCombinations(self, digits):
        :type digits: str
        :rtype: List[str]
        m = {'2':'abc', '3':'def', '4':'ghi', '5':'jkl', '6':'mno', '7':'pqrs', '8':'tuv', '9':'wxyz'}
        return self.create(digits, 0, m, list(), '')
    def create(self, digits, index, m, ans, temp):
        if index == len(digits):
            return temp

        for l in m[digits[index]]:
            temp += l
            if len(temp) == len(digits):
                self.create(digits, index+1, m, ans, temp)
            temp = temp[:-1]
        return ans


Runtime: 23 ms, faster than 56.19% of Python online submissions.

Memory Usage: 13.3 MB, less than 98.21% of Python online submissions.


Python-related posts Visit HERE

C++ related posts Visit HERE

Databases related posts Visit HERE

Data Structures related posts visit HERE

Algorithms related posts visit HERE

Data Science related posts visit HERE