用python写一个匹配算法
时间: 2023-06-01 22:01:45 浏览: 83
匹配算法有很多种,这里提供一个简单的字符串匹配算法——暴力匹配算法。
暴力匹配算法的思路是:从文本串的第一个字符开始,依次和模式串的每一个字符进行比较。如果匹配成功,则继续比较下一个字符;否则,从下一个字符开始重新匹配。当文本串的字符全部匹配完毕,且模式串的所有字符都匹配成功,则匹配成功;否则,匹配失败。
下面是用Python实现的暴力匹配算法:
``` python
def brute_force_match(text, pattern):
n = len(text)
m = len(pattern)
i = 0
j = 0
while i < n and j < m:
if text[i] == pattern[j]:
i += 1
j += 1
else:
i = i - j + 1
j = 0
if j == m:
return i - j
else:
return -1
```
其中,text表示文本串,pattern表示模式串。n和m分别表示文本串和模式串的长度。i和j分别表示文本串和模式串当前比较的位置。如果匹配成功,则i和j都加1;否则,i回到上一次匹配的位置加1,j重新回到模式串的起始位置。
最后,如果模式串的所有字符都匹配成功,则返回匹配的起始位置;否则,返回-1表示匹配失败。
示例:
``` python
text = 'hello world'
pattern = 'world'
result = brute_force_match(text, pattern)
print(result) # 输出:6
```
这里将模式串'world'在文本串'hello world'中匹配成功,返回起始位置6。