中级
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
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199