模式匹配--bf算法代码
时间: 2024-11-11 21:13:53 浏览: 17
c语言中使用BF-KMP算法实例
模式匹配是指在一个文本串中查找是否存在某个固定模式的过程。Backtracking(简称BF)算法是一种通用的字符串匹配算法,也称为暴力穷举法。它的基本思想是从模式的第一个字符开始,逐个与文本串进行比较,如果找到匹配就继续,如果不匹配,则尝试从当前位置向后移动一位,直到找到匹配或者遍历完所有可能性。
下面是一个简单的Python版本的BF算法代码示例:
```python
def bf_search(text, pattern):
n = len(text)
m = len(pattern)
# 创建一个表格记录每个位置是否匹配
match = [-1] * m
for i in range(n - m + 1): # 文本串长度减去模式长度,防止越界
j = 0 # 初始化模式指针
while j < m and text[i + j] == pattern[j]: # 比较字符
match[j] = i # 如果匹配,保存位置
j += 1
return match
text = "Hello, World!"
pattern = "World"
result = bf_search(text, pattern)
if result != []:
print("Pattern found at indices", ", ".join(map(str, result)))
else:
print("Pattern not found")
```
在这个例子中,`bf_search`函数会返回一个列表,表示模式在文本串中首次出现的所有位置的索引,如果没有找到则返回空列表。
阅读全文