[英]Reversing a string recursion error python
當我返回 .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))
def reverse_string(s):
if not s: # a base case ...
return ""
return s[-1] + reverse_string(s[:-1]) # a recursive case
盡管這些會產生可怕的示例問題,因為現實世界中的任何人都會使用reverse
或s[::-1]
你有無限遞歸,因為你的函數沒有基本情況,也沒有適當的遞歸情況。 您的“遞歸”包括使用相同的數據調用相同的函數。
遞歸例程有兩個主要部分:
在你的情況下,這可能是
if len(string) <= 1:
return string
words
列表,但在控制流中完全忽略了它。 你需要解決這個問題。 我不能在這里給出建議,因為你還沒有描述你的算法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.