【问题描述】
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合(字母均小写)。
给出数字到字母的映射如下(与电话按键相同,2可以表示字母a,b,c;3可以表示字母d,e,f;以此类推。0和1不对应任何字母,也不会出现在输入字符串中)。
【输入形式】
只包含数字2-9的字符串,字符串长度大于等于1,小于等于4
【输出形式】
由空格分割的按字母表顺序排列的若干英文字符串(最后有空格)
【样例输入】
23
【样例输出】
ad ae af bd be bf cd ce cf
#九键输入
def letterCombinations(digits):
if not digits:
return []
phone = {
'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']}
def cal(combations, digit):
if len(digit) == 0:
res.append(combations)
else:
for item in phone[digit[0]]:
cal(combations+item,digit[1:])
res = []
cal('',digits)
return res
number = input()
comb = letterCombinations(number)
sorted(comb)
if not comb:
print('NULL')
else:
for i in comb:
print(i,end=' ')