本文实例讲述了Python基于递归实现电话号码映射功能。分享给大家供大家参考,具体如下:

问题
电话按键上面的每个数字都对应着几个字母,如果按下一个数字键代表输入一个字母,那么输入一个数字组成的字符串,它所产生的所有的可能的字母串是什么,有多少种
思路:
这个是一个递归的问题
下面是具体的实现,为了更清晰看懂递归调用的过程,这里打印出来了每一次递归的过程:
#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:电话号码映射
'''
phone_dict={'2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'}
def phone_num_map(one_str,phone_dict):
'''''
电话号码映射
'''
res_list=[]
deep(one_str, "", res_list)
return res_list
def deep(one_str, tmp_str, res_list):
'''''
递归的遍历过程
'''
if not one_str:
res_list.append(tmp_str)
return
for c in phone_dict[one_str[0]]:
deep(one_str[1:], tmp_str + c, res_list)
print 'deep({0}, {1}, {2})'.format(one_str[1:], tmp_str + c, res_list)
if __name__ == '__main__':
one_str_list=['23','567','47','89','44']
for one_str in one_str_list:
one_list=phone_num_map(one_str,phone_dict)
print one_list
print len(one_list)
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。