← 返回题库
中级

KMP字符串匹配

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve(____):
    text = str(____).strip()
    pattern = str(____).strip()
    def kmp(____):
        if not p: return ____
        n, m = len(____), len(____)
        fail = [____] * m
        j = ____
        for i in range(____, m):
            while j > ____ and p[i] != p[j]:
                j = fail[j-____]
            if p[i] == p[j]:
                j += ____
            fail[i] = j
        j = ____
        for i in range(____):
            while j > ____ and t[i] != p[j]:
                j = fail[j-____]
            if t[i] == p[j]:
                j += ____
            if j == m:
                return i - m + ____
        return -____
    idx = kmp(____)
    print(____)

示例

输入
solve('hello world', 'world')
期望输出
6
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码