串的模式匹配算法 – BF算法详解

一、BF算法原理

BF算法是一种蛮力算法,其实现过程没有任何技巧,就是简单粗暴地拿一个串同另一个串中的字符一一比对,得到最终结果。

算法目的:确定主串中所含子串第一次出现的位置,这里的子串也称为模式串。

设计思想:

(1)主串和模式串逐个字符进行比较

(2)当出现字符不匹配(失配)时,主串的比较位置重置为起始位置的下一个字符位置,模式串的比较位置重置为起始字符

回溯关系的确定:i = i - j + 1; //主串指针回溯到比较起始位置的下一个字符位置
关键字:循环比较

第一次回溯
因为i=j=0都是从0开始,因此逐一比较时下标相等。回溯下标需要使i=1


第二轮回溯经过第一次回溯,i的下标比j的下标大1,因此进行i=i-j+1=2,i指针又往前挪移一位

因此i-j是保留之前累积的i>j的差值,然后+1,利用循环便可以继续累加,达到指针不断向前移,回溯到比较起始位置的下一个字符位置的效果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值