当我返回.join方法以反转字符串时,我调用函数本身来这样做。仍不使用内置python方法(例如,reversed方法)如何仍然可以反转此字符串。
def reverse_string_3(string):
length = len(string)
spaces = [' ']
words = []
index_tracker = 0
while index_tracker < length:
if string[index_tracker] not in spaces:
beginning_of_word = index_tracker
# we only want to increment when the index tracker is a letter and not spaces
while index_tracker < length and string[index_tracker] not in spaces:
index_tracker += 1
words.append(string[beginning_of_word:index_tracker])
index_tracker += 1
return "".join(reverse_string_3(string))
答案 0 :(得分:1)
def reverse_string(s):
if not s: # a base case ...
return ""
return s[-1] + reverse_string(s[:-1]) # a recursive case
尽管这会造成可怕的示例问题,因为现实世界中的任何人都只会使用reverse
或s[::-1]
答案 1 :(得分:0)
您具有无限递归,因为您的函数没有基本情况,也没有适当的递归情况。您的“递归”包括用相同的数据调用相同的函数。
递归例程有两个主要部分:
您的情况可能是
if len(string) <= 1:
return string
words
列表,但在控制流中完全忽略了该步骤。您需要解决此问题。在这里我不能给出建议,因为您还没有描述算法。