30 lines
982 B
Python
30 lines
982 B
Python
class Solution:
|
|
def letterCombinations(self, digits: str) -> List[str]:
|
|
m = {
|
|
1: '',
|
|
2: 'abc',
|
|
3: 'def',
|
|
4: 'ghi',
|
|
5: 'jkl',
|
|
6: 'mno',
|
|
7: 'pqrs',
|
|
8: 'tuv',
|
|
9: 'wxyz',
|
|
}
|
|
rlt = []
|
|
for ch in digits:
|
|
num = int(ch)
|
|
if len(rlt) == 0:
|
|
for l in m[num]:
|
|
rlt.append(l)
|
|
else:
|
|
tmp_rlt = rlt.copy()
|
|
for length in range(len(m[num])):
|
|
ch = m[num][length]
|
|
if length == 0:
|
|
for index, s in enumerate(rlt):
|
|
rlt[index] = tmp_rlt[index] + ch
|
|
else:
|
|
for index, s in enumerate(tmp_rlt):
|
|
rlt.append(tmp_rlt[index] + ch)
|
|
return rlt |