# 000017-Letter-Combinations-of-a-Phone-Number

### Problem

https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/

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

Constraints:

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

### Solution

backtracking

``````class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits:
return []
phone_map = {"2": "abc", "3": "def", "4": 'ghi', "5": "jkl", "6": "mno", "7": "pqrs", "8": "tuv", "9": "wxyz"}

res = []

def helper(idx, temp=[]):
if len(temp) == len(digits):
res.append("".join(temp))
return
for letter in phone_map[digits[idx]]:
temp.append(letter)
helper(idx+1, temp)
temp.pop()

helper(0, [])
return res
``````

Last updated