Leetcode 17

Question

Solution

考虑递归。每递归一次,digits都少一位,当digits为空的时候,递归返回一个结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits:
return []

d = {'2':"abc",
'3':"def",
'4':"ghi",
'5':"jkl",
'6':"mno",
'7':"pqrs",
'8':"tuv",
'9':"wxyz"
}

results = []
self.dfs(d, digits, "", results)
return results

def dfs(self, d, digits, temp, results):
if not digits:
results.append(temp)
else:
for num in d[digits[0]]:
self.dfs(d, digits[1:], temp+num, results)