gpt4 book ai didi

python - 递归地反转字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:19 25 4
gpt4 key购买 nike

所以这段代码反转了一个字符串:

def backward(text):
if text == "":
return text
else:
return text[-1] + backward(text[:-1])

我不明白的是如何。如果文本是 [1, 2, 3, 4, 5],else 语句不会返回 5 1 2 3 4(因为 [-1] 是 5 而 [:-1] 是 1 2 3 4?我不知道真的了解调用向后函数如何反转 [:-1] 部分。如您所见,我真的很难使用递归。如果您能为此提供任何帮助,我们将不胜感激。谢谢!

最佳答案

在递归到达最终表达式之前,它们不会立即相加。在这里,每一步发生了什么:

"5" + backwards("1234")
"5" + "4" + backwards("123")
"5" + "4" + "3" + backwards("12")
"5" + "4" + "3" + "2" + backwards("1")
"5" + "4" + "3" + "2" + "1" + backwards("")
"5" + "4" + "3" + "2" + "1" + ""
"54321"

基本上你正在构建一个返回语句链(又名 call stack ),它们在最后连接成“54321”。

在上面的计算中,我省略了 return 关键字。例如"5"+ "4"+ backwards("123") 在现实中看起来像 return "5"+ (return "4"+ backwards("123")) .

关于python - 递归地反转字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43221875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com