给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
from typing import List
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits:return []
ans=[]
d={
2:'abc',
3:'def',
4:'ghi',
5:'jkl',
6:'mno',
7:'pqrs',
8:'tuv',
9:'wxyz'
}
def dfs(q,digits:str):
if not digits:
ans.append(q)
else:
for x in d[int(digits[0])]:
dfs(q+x,digits[1:])
dfs('',digits)
return ans
from typing import List
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits:return []
ans=['']
d={
2:'abc',
3:'def',
4:'ghi',
5:'jkl',
6:'mno',
7:'pqrs',
8:'tuv',
9:'wxyz'
}
for x in digits:
n=len(ans)
for i in range(n):
t=ans.pop(0)
for y in d[int(x)]:
ans.append(t+y)