跳到主要内容

Brute-Force

原理

将模式串(p)中的字符一个一个同文本串(t)比较
比较完后文本串索引向后移一个,然后重新比较,以此类推

比如可以写两个for嵌套,循环索引为ij,初始值都设为0
然后开启以下循环

    1. j小于模式串长度时,循环比较t[i]==p[j]
      • t[i]!=p[j],跳出
      • 否则j++
  1. j等于模式串长度,则找到了一个字串
  2. 使i自加1

代码实现

def bf(string: str, pattern: str) -> typing.List[int]:
n = len(string)
m = len(pattern)
indexes = []
i = 0
while i <= n - m:
j = 0
while j < m and string[i + j] == pattern[j]:
j += 1
if j == m:
indexes.append(i)
i += 1
return indexes