字符串匹配

本文详细介绍了字符串匹配的基本概念、常见算法及其在实际场景中的应用,包括朴素字符串匹配、RK算法、自动机算法和KMP算法。重点讨论了算法的时间复杂度、重要概念如前缀、后缀及后缀重叠定理,并通过实例展示了如何优化匹配过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串匹配:一个模式p,p是个字符串,长度为m;一个文本T,T的长度为n; 偏移量为s,s的范围为(0,n-m); 我们要做的就是找到所有的s。

                      其实问题也等价为,找到所有的s,使得p(m)是T(s+m)的后缀。

常用思路:朴素字符串匹配(无预处理阶段,仅有匹配阶段),RK算法(预处理阶段,匹配阶段),自动机算法(预处理阶段,匹配阶段),

                    KMP算法(预处理阶段,匹配阶段)。

它们的时间复杂度:预处理阶段 +匹配阶段

重要概念:前缀,后缀,后缀重叠定理

                    有限字符串


朴素字符串匹配算法,比较朴素,就是一点一点挪。没有利用每次挪动失败的信息。浪费了呀啊。

接下来三种,则均有利用到前面失败时的信息,记录下来,辅助指导后面的匹配。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值