如何解决我在递归函数中找不到资源不足错误
我似乎无法在我的代码中找到错误在哪里绘制无限递归,我的基本情况似乎很好,我认为我正在正确索引。
def phoneNumberMnemonics(phoneNumber):
returnList = []
helper(phoneNumber,[],returnList)
return returnList
def helper(phoneNumber,idx,currentList,returnList):
if idx == len(phoneNumber):
returnList.append(currentList)
return
else:
digit = phoneNumber[idx]
letters = hashMap[digit]
for i in letters:
currentList.append(i)
helper(phoneNumber,idx+1,returnList)
hashMap = {'0':['0'],'1':['1'],'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']}
解决方法
当您将字母放入主列表时,不应调用您的辅助递归函数。将其移出 for
循环。
def phoneNumberMnemonics(phoneNumber):
returnList = []
helper(phoneNumber,[],returnList)
return returnList
def helper(phoneNumber,idx,currentList,returnList):
if idx == len(phoneNumber):
returnList.append(currentList)
return
else:
digit = phoneNumber[idx]
letters = hashMap[digit]
for i in letters:
currentList.append(i)
# outside for loop
helper(phoneNumber,idx + 1,returnList)
hashMap = {'0': ['0'],'1': ['1'],'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']}
print(phoneNumberMnemonics("9056661234"))
输出
[['w','z','0','j','l','m','o','1','a','c','d','f','g','i']]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。