17. Letter Combinations of a Phone Number
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.
解题要点:
用Backtracking的方法,反正就很巧妙。
class Solution(object):
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
res = []
if len(digits) == 0:
return res
temp = ""
key = {1:"",2:"abc",3:"def",4:"ghi",5:"jkl",6:"mno",7:"pqrs",8:"tuv",9:"wxyz"}
def combinations(res, temp):
if len(temp) == len(digits):
res.append(copy.deepcopy(temp))
return
for i in key[int(digits[len(temp)])]:
temp = temp + i
combinations(res, temp)
temp = temp[:-1]
combinations(res, temp)
return res
Last updated
Was this helpful?