boyer-moore算法的伪代码
时间: 2023-10-12 18:17:26 浏览: 145
下面是Boyer-Moore算法的伪代码:
```
function boyer_moore(text, pattern):
n = length(text)
m = length(pattern)
if m == 0:
return 0
last = create_last(pattern)
i = m - 1
j = m - 1
while i < n:
if text[i] == pattern[j]:
if j == 0:
return i
else:
i -= 1
j -= 1
else:
k = last[text[i]]
i = i + m - min(j, 1+k)
j = m - 1
return -1
function create_last(pattern):
last = array of length 256, filled with -1
for i from 0 to length(pattern) - 1:
last[pattern[i]] = i
return last
```
其中,`text`为目标文本,`pattern`为要查找的模式串,`n`和`m`分别为目标文本和模式串的长度。`create_last(pattern)`是一个辅助函数,用于生成一个数组`last`,其中`last[c]`指的是字符`c`在模式串中最后一次出现的位置。
阅读全文