[Solved] 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.

Table of Contents

Question

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.

1200px telephone keypad2svg

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

Constraints:

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

Python Solution

class Solution:
    def rec(self,digits):
        phone = {'2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', '6': 'mno', '7': 'pqrs',                    '8': 'tuv', '9': 'wxyz'}
        
        if len(digits)==0:
            return ''
        
        if len(digits)==1:
            return phone[digits]
    
        front = phone[digits[0]]
        back = self.rec(digits[1:])
        res = [f+b for f in front for b in back ]
        
        return res

    def letterCombinations(self, digits: str) -> List[str]:
        return self.rec(digits)

Leave a Reply

Your email address will not be published. Required fields are marked *