Python 中的蛮力模式算法

Brute Force Pattern Algorithm in Python

使用Python,你将如何实现一个强力字符串匹配算法。该算法将解决字符串匹配问题。字符串匹配问题是在文本(n 个字符的字符串)中找到一个模式(m 个字符的字符串)。 使用以下测试用例的输出验证您的代码:

测试用例#1: 文字:10110100110010111 图案:001011

测试用例#2: 正文:快乐的童年永远不晚 模式:更快乐

测试用例#3: 文本:NOBODY_NOTICED_HIM 模式:NOT

您可以使用

pattern in text

为此。如果您需要从头开始实现整个算法,这也很容易:

def contains(text, pattern):
    for i in range(len(text)):
        for j in range(len(pattern)):
            if i + j >= len(text):
                break
            if text[i + j] != pattern[j]:
                break
        else:
            return True
    return False

用法

contains('10110100110010111', '001011') # True
contains('It is never too late to have a happy childhood', 'happier') # False

应该注意的是,还有其他算法会更有效,例如著名的 Knuth-Morris-Pratt algorithm