gpt4 book ai didi

python - rfind 使用 find 实现

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

我是Python新手,我正在尝试使用find实现rfind函数。

def rfind_imp(s,t):
ss = s
fpos = 0
while(True):
fpos = s.find(t,fpos)
ss=ss[fpos:]

if(ss):
fpos = fpos +1
else:
return fpos

print rfind_imp("I saw a donkey,I saw a saw "," ")
print "I saw a donkey,I saw a saw ".rfind(" ")

但我面临的问题是我得到第 16 个字符作为 rfind 值。有人可以帮我找出我哪里做错了吗?此外,任何有关使用 find 更好地实现 rfind 的建议都应该有所帮助。

最佳答案

我认为你的算法应该这样实现:

def rfind_imp(s, t):
fpos = -1
while True:
pos = s.find(t, fpos + 1)
if pos == -1:
return fpos
fpos = pos

另一种算法对于多次出现 t 的字符串可能更快:(编辑:使其适用于具有多个字符的字符串)

def rfind2(s, t):
pos = s[::-1].find(t[::-1])
if pos == -1:
return pos
return len(s) - pos - len(t)

关于python - rfind 使用 find 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845553/

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