这是我的简单代码。在
def reverseString(aStr):
newStr = ''
if len(aStr) == 0:
return newStr
else:
newStr = newStr + aStr[len(aStr)-1]
return reverseString(aStr[:len(aStr)-1])
对于'alina'
(如果我在return reverseString...
之前插入print newStr
),输出是:newStr='a'
,newStr='n'
,newStr='i'
,newStr='l'
,newStr='a'
,newStr=''
。我不明白。它为什么会这样?在
您的函数没有工作的原因是您忘记在结尾返回
newStr
。每次调用函数时,newStr
将被重置回''
。在有一个更简单的方法来做你正在做的事情。使用slicing:
示例:
^{pr2}$正如前面所说,有一种更简单的方法来实现这一点,它避免递归和它所涉及的问题:
类似的东西:
代码的问题是^{cd1>}在每个递归循环处重新分配给空字符串(^{{cd2>}),您必须在每次递归调用中传递^{cd1>}。
^{pr2}$相关问题 更多 >
编程相关推荐