题目
思路
DFS
代码
class Solution:
def __init__(self):
self.res_list = []
def dfs(self, digits, index, map_dict, tmp_list):
if index == len(digits):
self.res_list.append(
''.join(tmp_list[:]))
return
for c
in map_dict[digits[index]]:
tmp_list.append(c)
self.dfs(digits, index +
1, map_dict, tmp_list[:])
tmp_list.pop(-
1)
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
if not digits:
return []
map_dict = {}
map_dict[
'2'] = [
'a',
'b',
'c']
map_dict[
'3'] = [
'd',
'e',
'f']
map_dict[
'4'] = [
'g',
'h',
'i']
map_dict[
'5'] = [
'j',
'k',
'l']
map_dict[
'6'] = [
'm',
'n',
'o']
map_dict[
'7'] = [
'p',
'q',
'r',
's']
map_dict[
'8'] = [
't',
'u',
'v']
map_dict[
'9'] = [
'w',
'x',
'y',
'z']
self.dfs(digits,
0, map_dict, [])
return self.res_list