Input: “23”
Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
if digits=="":
return []
self.dict = {"1":"", "2":"abc", "3":"def", "4":"ghi", "5":"jkl", "6":"mno", "7":"pqrs","8":"tuv","9":"wxyz","10":" "}
result = [""]
for digit in digits:
lst = self.dict[digit]
newresult = []
for char in lst:
for str in result:
newresult.append(str+char)
result = newresult
return result
class Solution(object):
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
if len(digits) == 0:
return []
def dfs(num, string, res):
if num == length:
res.append(string)
return
for letter in dict[digits[num]]:
dfs(num+1, string+letter, res)
dict = {'2':['a','b','c'],
'3':['d','e','f'],
'4':['g','h','i'],
'5':['j','k','l'],
'6':['m','n','o'],
'7':['p','q','r','s'],
'8':['t','u','v'],
'9':['w','x','y','z']
}
res = []
length = len(digits)
dfs(0, '', res)
return res
本文深入探讨了一种将电话号码转换为所有可能的字母组合的算法实现。通过递归和迭代两种方法,详细解释了如何根据电话键盘上每个数字对应的字母生成所有组合。文章包含清晰的代码示例,帮助读者理解并应用这一算法。
569

被折叠的 条评论
为什么被折叠?



