python编程——006实战递归
练习
leetcode17
1)题目
2)做法
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
dict={'2':['a','b','c'],'3':['d','e','f'],'4':['g','i','h'],
'5':['j','k','l'],'6':['m','n','o'],'7':['p','q','r','s'],'8':['t','u','v'],'9':['w','x','y','z']}
result=[]
def menu(s,digits):
if len(digits)==0:
result.append(s)
else:
cur_digit=digits[0]
for element in dict[cur_digit]:
menu(s+element,digits[1:])
if not digits or len(digits)==0:
return result
menu('',digits)
return result
3)分析
在之前的学习中我们复习了递归和动态规划思想,在这里我们先用字典把数字和字母对应关系保存起来,
然后用递归来做,我们用s来记录结果,每次从digits里面取出一个数,找到他可能的element,加到s里面,digits长度减小直到长度为0
leetcode46
1)题目
2)做法
def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ res=[] if len(nums)==0: return [] if len(nums)==1: return[nums] for i in range(len(nums)): ex_num=nums[i] rest=nums[:i]+nums[i+1:] for j in self.permute(rest): res.append([ex_num]+j) return res
1234567891011121314151617183)分析
我们实际上是怎么做的,就是把第一个取出来之后,剩下的按照随意顺序组合。
网址:python编程——006实战递归 https://www.yuejiaxmz.com/news/view/82694
相关内容
Python实现简单算法乘法:提升编程效率与逻辑思维Python编程实现ChatGPT智能冰箱食谱生成与烹饪控制
高效时间管理:Python编程助力职场与家庭生活平衡之道
Python实现经典还钱问题算法:优化财务管理的编程技巧
最受欢迎的11个Python编程软件,工作效率直接起飞!
解码支付宝交易安全:揭秘Python验签的实战技巧与风险防范
编程之美:从代码中寻找生活的灵感
python+flask计算机毕业设计个人财务管理系统的设计与实现(程序+开题+论文)
python
python中的print()语句中的end=''是什么意思