Алгоритм перебора строк в Python: наивный подход к поиску по шаблону

Вот объяснение алгоритма прямого сопоставления строк в Python:

Алгоритм прямого сопоставления строк, также известный как алгоритм простого сопоставления строк, представляет собой простой алгоритм поиска по шаблону. Он работает путем сравнения каждого символа шаблона с каждым символом текста до тех пор, пока не будет найдено совпадение или не будет достигнут конец текста.

Вот пример реализации алгоритма прямого сопоставления строк в Python:

def brute_force_string_match(pattern, text):
    m = len(pattern)
    n = len(text)
    for i in range(n - m + 1):
        j = 0
        while j < m:
            if text[i + j] != pattern[j]:
                break
            j += 1
        if j == m:
            return i
    return -1

В этом алгоритме patternпредставляет шаблон, который мы ищем, а textпредставляет текст, в котором мы ищем шаблон. Функция возвращает индекс первого вхождения шаблона в текст или -1, если шаблон не найден.

Этот алгоритм имеет временную сложность O((n – m + 1) m), где n — длина текста, а m — длина шаблона. В худшем случае это может занять время O(nm).