目前正在复习即将到来的考试,并给出了这道练习题,答案是 8,但我不确定为什么。有人可以为我分解吗?我试过追踪它,但它很快就变得令人困惑呵呵。
def confuse(s):
if len(s) <= 1:
return s
x = len(s) // 2
return confuse(s[:x]) + confuse(s[x:])
print(confuse('annoy'))
问题:排除confuse('annoy')的调用,在这个函数终止之前进行了多少次递归调用?
谢谢!
最佳答案
你应该把它画成一棵树:
混淆('烦'):
+- 'an' (half of annoy, rounded down)
| +- 'a'
| \- 'n'
\- 'noy'
+- 'n'
\- 'oy'
+- 'o'
\- 'y'
这是你的八个电话。
关于Python - 为什么这会进行 8 次递归调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53655787/