【发布时间】:2018-05-08 01:03:17
【问题描述】:
我正在尝试使用递归构建评分矩阵,
for i in range(1, len(str1))
for j in range(1, len(str))
#do something
我的代码:
def matrix_bulid(index_1, index_2):
print(index_1, index_2)
if index_1 == len(first_dna) and index_2 == len(second_dna):
return
elif index_2 == len(second_dna):
return matrix_bulid(index_1 + 1, 1)
else:
#do something
matrix_bulid(index_1, index_2 + 1)
但是在非常长的字符串中,我得到最大深度错误。 有人知道怎么做吗?
【问题讨论】:
-
不使用递归?
-
递归并不是在所有情况下都可以真正加快代码速度,而只是一种解决无法通过迭代解决或适合递归的问题的方法
-
afaik 几乎所有的递归都可以用循环来完成......递归有时可以使它比循环更具可读性(或不)
-
@JoranBeasley:所有递归都可以通过循环和显式堆栈来完成。 一些递归可以只用一个循环来完成,就像这种情况。但你是对的,在某些情况下,递归情况更具可读性(即使不需要堆栈),在这些情况下,只要你的有界限制远低于堆栈深度,就值得这样做。