【发布时间】:2026-02-21 00:25:02
【问题描述】:
我正在尝试实现一个在字符串中递归查找文本的函数。
我试过这个,但我不知道为什么它不起作用。请注意,我是编码新手。
def find(text, substring):
if len(text) == 0:
return 0
while substring[0] in text:
return find(text, substring[1:])
谢谢! :)
示例:
find("mississippi", "sip")
True
find("to be or not to be", "be")
True
find("mississippi", "sup")
False
【问题讨论】:
-
预期的结果是什么,你得到的结果是什么?
-
当到达字符串末尾时,您有一个基本情况,但当找到匹配项时,您还需要一个基本情况。
-
@GregPrisament 你的意思是“当没有找到匹配的时候”?
-
快速找到一个子串并不是一件容易的事,递归算法会导致 O(n^2) 算法。使用 Knuth-Patterson 算法,可以实现 O(n) 线性时间。