代码随想录算法训练营第九天 | KMP算法

本文通过实例解析了KMP算法在字符串匹配中的应用,重点讲解了如何在模式串不匹配时利用已知信息跳过不必要的比较,以提高效率。

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

KMP算法

代码不太会写,但是学习数据结构的时候有学习过。这遍自己打一打看看理解够不够。
首先举个例子:

/*
字符串:                aaabaaacaaad
需要比较的模式串:      aaad

i为指向字符串的下标, j为指向模式串的下标,都从1开始
**** 第一轮比较
i = 1; j = 1;
相等
i++;   j++
**** 第二轮比较
i = 2; j = 2;
...同理直到 i = 4; j = 4失配

此时如果使用朴素匹配算法,就要将i = 2; j = 1; 从字符串第二位,模式串的头一位开始比较,但是已经比到了第四位,说明字符串的前三位和模式串的前三位一致,可以在失配后跳过比较,让主串的下标i保持不变,j指向后面。

*/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值