篙菠 发表于 2025-6-2 00:28:55

前缀函数和 KMP "跳步骤"模式匹配

在一篇由字符构成的长文中查找另一个短字符串出现的位置,这可以算是编程领域最最常见的问题(比如按下 Ctrl + F 就可以打开你浏览器的查找功能)。这个问题叫做字符串的模式匹配,我们把被查找的关键词叫做模式串,被查找的全文叫做主串。注意:本文的下标均从 0 开始。
当我们用最容易想到的朴素的暴力解法时,就像逐字逐句地翻动书页:将模式串的每个字符与主串逐一比对,一旦发现不匹配,就把模式串右移一位,重新从头比较。

面对随机数据,算法可以高效工作。但这种老实人的做法,在遇到某些“狡猾”的数据时会彻底崩溃。比如:

[*]主串:AAAAA……AAB(连续100万个A后跟一个B)
[*]模式串:AAAAAAAC
暴力解法会怎么做?它会在主串的每一个位置,逐个对比前7个字符,直到发现第7位的A与C不匹配,再右移一位重复这个过程,最终一共进行了八百万次匹配,最终还是没有找到。


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

溧久苟 发表于 2025-10-17 00:41:53

新版吗?好像是停更了吧。

格恳绌 发表于 2025-11-2 17:02:11

谢谢楼主提供!

杓疠? 发表于 2025-11-21 11:21:01

喜欢鼓捣这些软件,现在用得少,谢谢分享!

诈知 发表于 2025-12-14 17:38:06

谢谢楼主提供!

僭墙覆 发表于 2025-12-20 03:12:26

过来提前占个楼

梢疠 发表于 2026-1-16 17:57:48

感谢发布原创作品,程序园因你更精彩

判涔 发表于 2026-1-18 04:58:21

感谢分享,下载保存了,貌似很强大

瞿佳悦 发表于 2026-1-21 23:19:04

东西不错很实用谢谢分享

甘子萱 发表于 2026-1-22 01:56:02

这个好,看起来很实用

卜笑 发表于 2026-1-27 07:26:52

鼓励转贴优秀软件安全工具和文档!

郁兰娜 发表于 2026-1-27 08:50:31

感谢分享,下载保存了,貌似很强大

判涔 发表于 2026-1-30 04:32:16

yyds。多谢分享

洪思思 发表于 2026-2-1 04:17:35

感谢,下载保存了

东门芳洲 发表于 2026-2-2 08:45:22

感谢分享,下载保存了,貌似很强大

喙审 发表于 2026-2-3 07:08:15

yyds。多谢分享

匣卒 发表于 2026-2-4 10:15:29

yyds。多谢分享

裆趾针 发表于 2026-2-8 16:07:01

谢谢分享,辛苦了

羔迪 发表于 2026-2-8 17:34:39

感谢分享,下载保存了,貌似很强大

东门芳洲 发表于 2026-2-9 15:40:23

感谢分享,下载保存了,貌似很强大
页: [1] 2
查看完整版本: 前缀函数和 KMP "跳步骤"模式匹配