LeetCode 17 - Letter Combinations of a Phone Number Problem

Problem Statement

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

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:

Input: "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

Note:

Although the above answer is in lexicographical order, your answer could be in any order you want.

Solution:

class Solution: def letterCombinations(self, digits: str) -> List[str]: if len(digits)==0: return [] result = [] self.helpCombine(digits, '', result) return result def helpCombine(self, digits, currentStr, result): if len(digits)==0: result.append(currentStr) return mappings = { '0': '', '1': '', '2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', '6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz' } possibleChars = mappings[digits[0]] for char in possibleChars: currentStr+=char self.helpCombine(digits[1:], currentStr, result) currentStr = currentStr[:-1]