大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了Python基于递归实现电话号码映射功能。分享给大家供大家参考,具体如下:
成都创新互联致力于互联网网站建设与网站营销,提供成都网站制作、网站设计、网站开发、seo优化、网站排名、互联网营销、微信小程序、公众号商城、等建站开发,成都创新互联网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。问题
电话按键上面的每个数字都对应着几个字母,如果按下一个数字键代表输入一个字母,那么输入一个数字组成的字符串,它所产生的所有的可能的字母串是什么,有多少种
思路:
这个是一个递归的问题
下面是具体的实现,为了更清晰看懂递归调用的过程,这里打印出来了每一次递归的过程:
#!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许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。