用户:
泯生闪月查看:0 回复:3 评论:0 创建时间:2023-08-04T09:49:42
【作品展示】

【作品介绍】
使用BF喵匹配算法,进行字符串匹配返回模式串在主串中第一次出现的索引位置
【作品源代码】
def BF(a, b):
for i in range(len(a)-len(b)+1): # 循环最糟糕的可能(即需要完整遍历主串)次
c = True # 用于在循环结束后判断是否匹配成功
for j in range(i, len(b)+i): # 循环模式串的长度次,如果上一次对齐没有匹配成功或是第一次进行匹配,则进行对齐
# 每次后移一位
if a[j] == b[j-i]: # 对每个已对齐位进行对比
continue # 如果成功,则匹配状态为True,即当前状态,无需更新状态,并进入下轮循环
else: # 不成功
c = False # 重新设置匹配状态
break # 退出匹配的循环
if c:
'''
此时已经退出匹配循环
如果退出前的匹配状态为True,说明是自然退出,而非匹配失败后退出
返回模式串的第一个元素与主串的对齐点
'''
return i
'''
由于return后面的代码都不会被执行,所以当程序执行完了整个模式串的后移过程后,
仍然没有返回才会退出循环,进入这一部分
此时说明主串中不含模式串,返回None
'''
return None
print(BF(input(), input()))
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn