字符串的匹配模式:朴素的模式匹配算法(BF算法)

基本思想:从主串s寻找子串t,从s和t的第一个字符开始匹配,若匹配,则继续第二个匹配,若到后面(匹配到第m位,未匹配完),则子串t回溯到第一个字符,主串回溯到第二个字符,继续子串的第一个和主串的第二个匹配。。。。
伪代码:

  1. 在串s和串t中设置比较的起始下标i和j;
  2. 重复下述操作,直到s或t的所有字符均比较完毕;

    2.1 如果s[i]等于t[j],继续比较s和t的下一对字符
    2.1否则将下标i和j回溯,准备下一趟比较

  3. 如果t中所有字符均比较完,则匹配成功,返回匹配的开始位置,否则,匹配失败,返回0(约定返回0代表匹配失败)

图片来源于数据结构(C++版)清华大学出版社

图片来源于数据结构(C++版)清华大学出版社
下面是代码的展示:

#include<iostream>
#include<string>
using namespace std;


int main() {
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值