串的匹配(BF)

串匹配——bf、kmp、bm算法 问题描述:给定一个文本,在该文本中查找并定位任意给定字符串:给定两个串和,在主串S中查找子串T的过程,T为模式。 1、bf算法 蛮力法 对主串与模式串一个一个进行比较,若不匹配,则模式串从第一个字符开始,主串往后一个字符,再进行下一趟比较;若匹配,则模式串与主串字符往后进行比较。 直到主串s所剩字符长度小于模式串t长度或模式串所有字符比较完毕。 #include<stdio.h&... 阅读详情
#include<stdio.h>
#define maxsize1 10 
#define maxsize2 4 

/*主串移动完,匹配失败
模式串移动完,匹配成功*/

int patternmatching(int *a,int *b)//主串和模式串,返回的是模式串在主串的开头位置
{
    int i,j;//定义两个变量,i用于主串的下标,j用于模式串的下标
    for(i=0;i<maxsize1;i=i-j+1)
    /*主串从下标0开始;
    i=i-j+1:i的重置,j为模式串当前的下标,每趟匹配i和j同步移动;
    i-j为重置 i为这趟匹配开始的位置;
    i-j+1为往后移动一位,准备下一趟匹配*/
    {
        for(j=0;j<maxsize2;)//模式串的移动
        {
            if(a[i]!=b[j])break;//此趟出现主串和模式串的元素不匹配时,停止匹配循环,进入新的一趟匹配
            else if(a[i]==b[j])//主串和模式串的元素匹配时,主串和模式串同步往后移动
            {
                i++;
                j++;
            }
        }
        if(j==maxsize2)//如果模式串全部移动完毕,说明模式串全部和主串的一部分匹配成功了
            return (i-j);//返回此趟匹配i的初始位
    }
    return -1;//主串移动完毕,则匹配失败返回-1
}

void main()
{
    int n;
    int a[maxsize1]={0,1,2,3,4,5,6,7,8,9};
    int b[maxsize2]={2,3,4,5};
    n=patternmatching(a,b);//
    if(n!=-1)
        printf("匹配成功:%d\n",n);
    else 
        printf("失败了!!!\n");
}
串—BF算法(简单匹配算法) 串的模式匹配: 查找模式串 t 是不是目标串 s 的子串,如果模式匹配成功(在目标串s中找到一个模式串t),t 是s 的字串,返回 t 在 s 中的位置;如果模式匹配不成功,t 不是 s 的子串, 返回 -1. 方法: BF算法,也称为简单匹配算法。 采用穷举的思路。从s的每一个字符开始依次与t的字符进行匹配。 基本思路: 1、从目标串s = "s0 s1…s n-1"的第一个字符开始和模式串t ... 阅读详情

相关推荐

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

文章目录一、BF算法原理设计思想:二、时间复杂度三、C++实现代码 一、BF算法原理 BF算法是一种蛮力算法,其实现过程没有任何技巧,就是简单粗暴地拿一个串同另一个串中的字符一一比对,得到最终结果。 算法目的:确定主串中所含子串第一次出现的位置,这里的子串也称为模式串。 设计思想: (1)主串和模式串逐个字符进行比较 (2)当出现字符不匹配(失配)时,主串的比较位置重置为起始位置的...

CoutCodes的博客 4787

串的模式匹配(BF算法)

【问题描述】 串的模式匹配算法BF的实现与应用。 【输入形式】 第一行输入主串s; 第二行输入模式串t; 输入串中均不包含空格字符。 【输出形式】 模式串在主串s中的出现的每一个位置序号。若一次都未匹配到,则输出0。 【样例输入1】 ababcabcacbab ab 【样例输出1】 1 3 6 12 【样例输入2】 111113455113232342432432 11 【样例输出2】 1 2 3 4 10 【样例输入3】 fasdfdsfsadfdsdsagetgrd

w_nxsxs的博客 1万+

数据结构(C语言)串的模式匹配BF算法

BF算法 BF(Brute Force)算法又称暴力算法,是一种普通的模式匹配算法,其思想是:从主串第一个字符开始,取子串长度个字符,这些字符分别与子串进行比较,若某位字符不相等,则在主串起始字符向后推移一格与子串再进行比较,直至在主串遍历出与子串相等的字符串。 ...

AtomQQ_2022313691的博客 2115

串的模式匹配算法之BF算法

与线性表相似,串也有两种基本存储结构,顺序存储和链式存储。但考虑到存储效率和算法的方便性,串多采用顺序存储结构。 1、串的顺序存储 1)串的定长顺序存储结构 类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列按照预定义的大小,为每个定义的串变量分配一个固定长度的存储区。合理 这种定义方式是静态的,在编译时刻就确定了串空间的大小。而大多数情况下,串的操作是以串的整体形式参与的,串变量之间的长度相差较大,在操作中串值长度的变化也较大,这样为串变量设定固定大小的空间不尽合理。因此最好是根据实际

weixin_47700137的博客 4703

【串的模式匹配01】详细介绍串的模式匹配算法之BF算法

串的模式的匹配是指:给定一个字符串match,以及一个字符串pattern,其中match字符串称作:【匹配串】,pattern字符串称作:【模式串】,在字符串match中判断是否存在pattern字符串的过程,叫做串的模式匹配。【BF算法】和【KMP算法】。其中【BF算法】就是暴力破解算法,而【KMP算法】则是对【BF算法】的优化版本,这篇文章主要介绍【BF算法】,通过对BF算法的学习,研究一下它的算法缺点,然后下一篇文章再深入学习KMP算法。

✅ Java 开发工程师 678

从零到一:手把手教你用C#开发AGV调度系统(附避坑指南)

本文详细介绍了如何使用C#开发高效的AGV调度系统,涵盖从环境搭建到核心算法实现的完整流程。重点解析了动态路径规划、多机协同等关键技术,并提供了实用的避坑指南和性能优化建议,帮助开发者快速构建工业级车辆控制调度系统。

blockchain9miner的博客 742

串的模式匹配算法--BF算法和KMP算法

设有两个字符串S和T,设S为主串,也称正文串;设T为子串,也称为模式。在主串S中查找与模式T相匹配的子串,如果匹配成功,确定相匹配的子串中的第一个字符在主串S中出现的位置。

weixin_50207593的博客 1808

如何用Python+Librosa实现轴承异响检测?5步搞定工业设备故障预警

本文详细介绍了如何利用Python和Librosa库,通过5个步骤构建工业轴承异响检测与故障预警系统。从音频采集、预处理、频谱特征提取,到构建机器学习模型并进行实时监测,提供了完整的代码级解决方案。该方法能有效识别轴承早期故障特征,实现低成本、高效的设备预测性维护。

rnn9storyteller的博客 633

串的BF匹配算法

串的SF匹配算法,算法核心思想是:首先S[1]和T[1]比较,若相等,则再比较S[2]和T[2],一直到T[M]为止;若S[1]和T[1]不等,则T向右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(M*N)。 // 串的匹配算法.cpp : 定义控制台应用程序

jiahaode的专栏 597

TC264摄像头循迹进阶:八邻域与逐行遍历在复杂赛道边界提取中的实战对比

本文对比分析了TC264摄像头循迹中八邻域法与逐行遍历法在复杂赛道边界提取中的实战表现。八邻域法在边界连续性方面表现优异,适合处理环岛等复杂元素;逐行遍历法则在计算效率和岔路口识别上更具优势。文章提供了详细的代码实现和优化策略,帮助智能车竞赛选手根据赛道特点选择最佳算法方案。

rainy的博客 938

ROS新手必看:5分钟搞定URDF小车建模(附Rviz可视化调试技巧)

本文为ROS新手提供了快速构建URDF机器人模型的实战指南。通过一个完整的两轮差速小车建模案例,详细解析了URDF的核心语法、Rviz可视化调试技巧以及常见问题排查方法,帮助初学者快速掌握ROS机器人建模与可视化调试的核心技能。

weixin_29079643的博客 250

串(串的模式匹配算法BF算法)

文章目录串串的定义串的存储结构串的顺序存储串的链式存储结构串的模式匹配算法——BF算法 串 串的定义 串的逻辑结构和线性表极为相似,区别仅在于串的数据对象约束为字符集。然而,串的基本操作和线性表有很大差别。在线性表的基本操作中,大多以单个元素作为操作对象,列入,在线性表中查找某个元素,求取某个元素,在某个位置上插入一个元素或删除一个元素等;而在串的基本操作中,通常以串的整体作为操作对象,例如,在串...

qq_45918426的博客 1848

音频功放电路大全

作为硬件工程师,特别是做纯粹模拟电路、应用于音频功放的工程师,对于A类,B类,AB类,D类,G类,H类,T类功放应该特别熟悉。大多数工程师或许只知道其中的一部分、或者知道大概,为了让更多的工程师掌握更加详尽的音频功放知识,下文对以上说的音频功放做详细的说明。 功放,顾名思义,就是功率放大的缩写。与电压或者电流放大来说,功放要求获得一定的、不失真的功率,一般在大信号状态下工作,因此,功放电路一般包含电压放大或者电流放大电路没有的特殊问题,具体表现在:①输出功率尽可能大;②通常在大信号状态下工作;③非线性失真突

ltqdxl的博客 6595

串的BF模式匹配算法

BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配, 若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符 依次比较下去,直到得出最后的匹配结果 如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符; 如果失配(即S[i]! = P[j]),令i = i - (j - ...

weixin_33950757的博客 1715

UCIE Specification详解(七)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1691

MimicKit 人形机器人强化学习全身模仿控制算法使用教程

本文介绍了MimicKit运动模仿算法框架的使用指南。主要内容包括:1)安装IsaacGym和依赖项;2)训练模型命令及参数说明;3)测试模型的方法;4)分布式训练配置;5)使用TensorBoard可视化日志;6)动作数据格式说明。该框架支持DeepMimic、AMP、ASE、ADD等算法,包含PPO、AWR等强化学习算法,适用于物理仿真角色动画控制研究。

机器人控制与仿真应用 1202

串的模式匹配-BF算法

串的模式匹配经常需要用到,判断一个字符串是否是另外一个字符串的一部分。前者称为子串或模式,后者成为主串或正文串。先用最简单的BF算法实现串的模式匹配。算法思路:先从主串和子串第一个位置开始进行比较。如果相等,那么继续比较后面的字符,否则从主串失配的下一个元素开始和子串的第一个元素继续匹配。直到比较到主串最后位置,如果一直不匹配,则匹配失败,否则得到匹配的位置。最好情况时间复杂度:O(n+m) (假

Super小龙的博客 3634

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

BF算法—串的模式匹配算法

子串的定位运算通常称为串的模式匹配或串匹配。 串的模式匹配设有两个字符串S和T,设S为主串,也称正文串;设T为子串,也称模式。在主串S中查找与模式T相匹配的子串,如果匹配成功,确定相匹配的子串中的第一个字符在主串S中出现的位置。 著名的模式匹配算法有BF算法和KMP算法,下面介绍BF算法。 模式匹配不一定是从主串的第一个位置开始,可以指定主串中查找的起始位置pos。如果采用字符串顺序存储结构...

wmy0217_的博客 4398

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

串的匹配BF算法---python实现

BF算法串的定义串的模式匹配BF算法实现 串的定义 串的定义 串是由数字,字母或其他字符组成的有限序列。 串的长度:串中包含的字符个数即为串的长度。 空串:串中不包含任何字符时被称为空串,此时串的长度为0。 空格串:由一个或多个空格组成的串称为空格串,它的长度为串中空格的个数。 子串:串中任意个连续字符组成的子序列被称为该串的子串。空串是任意串的子串。 串的模式匹配 我们把在串S中寻找与串T相等的子串的过程称为串的模式匹配,其中串S被称为主串或正文串,串T被称为模式串。若在串S中找到与串T相等的子串,则匹配

Forerunner and Successor 先駆者と後継者 1185

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【数据结构】--串的匹配算法-BF算法

串(主串):一系列字符的有限集合。 子串:从串上拿到一部分字符构成的串叫做子串。 空串:不存在任何字符,是任意串的子串 串的匹配:用模式串在主串匹配 如图下所示,匹配成功,模式串在主串的位置指的是第一个字符对应的在主串的位置,也就是模式串在主串的第2个位置 串的匹配算法--朴素算法:群举,把每种情况都罗列进行匹配,直到匹配成功,也称BF算法 (1)用模式串和主串从第一个...

weixin_44915076的博客 549

串的模式匹配算法 ← BF算法

【串的模式匹配算法之BF算法】 ● 将主串的第i个字符(初始时i=pos)和模式的第一个字符(j=0)比较,若相等,继续逐个比较后续字符(i++、j++);若不等,从主串的下一字符(i=i-j+1)起,重新与模式的第一个字符(j=0)比较。 ● 直到主串的一个连续子串字符序列与模式相等 。返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。 ● 否则,匹配失败,返回值 0。

hnjzsyjyj的专栏 2194

串匹配算法 BF

搜索引擎 -> 倒排表 标题 ->内容简介 ->URL。时间复杂度:最坏情况 O(m*n)串s的长度为m 串p的长度为n。但是一般情况下 O(m+n)中查找另一个串的位置。

ljy的博客 326

串的匹配算法1-BF算法

BF算法

qq_45773423的博客 1009

串的模式匹配——BF算法

BF算法——又称”蛮力算法“ Brute-Force #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char a1[50] = {0}, a2[50] = {0}; scanf("%s", a1); scanf("%s", a2); int len1 = strl...

星星leslie的博客 393
上一篇: 算法-查找(顺序和二分)
下一篇: C语言多参数的传递和返回
甘甜的话梅
博客等级 码龄7年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值