BF模式匹配算法!字符串的模式匹配。
Problem Description
实现串的BF模式匹配算法,统计在匹配过程中总的字符比较次数,当主串剩余部分不足子串长度时,停止比较。
Input
输入包含两行,第一行为主串s,第二行为子串t。
Output
输出包含两行,第一行为子串在主串中的位置,如果失配,返回0值;第二行为匹配过程中总的字符比较次数。
Sample Input
abacd
ac
Sample Output
3
5
#include<stdio.h>
#include<string.h>
int n=0;
struct ch{char S[100],T[100];
}ch;
int Index(char s[],char t[],int a,int b){int i=0,j=0,z=0,c,d;c=a-1;d=b-1;for(;i<=c&&j<=d;i++){if(s[z]==t[j]){j++;z++;n++;}else{z=z-j+1;j=0;n++;}}if(j>d)return z-j+1;else return(0);
}
int main(){int b,c,d;struct ch a;gets(a.S);gets(a.T);b=strlen(a.S);c=strlen(a.T);d=Index(a.S,a.T,b,c);printf("%d\n",d);printf("%d",n);
return 0;
}
BF模式匹配算法!字符串的模式匹配。相关推荐
- 字符串的模式匹配 (朴素模式匹配算法 ,KMP算法)
字符串的模式匹配 寻找字符串p在字符串t中首次出现的起始位置 字符串的顺序存储 typedef struct {char str[MAXSIZE];int length; }seqstring; 朴素 ...
- 【数据结构】字符串 模式匹配算法的理解与实现 Brute Force算法(BF算法)与KMP算法 (C与C++分别实现)
#笔记整理 若不了解串的定义,可至: 串(string)的定义与表示 查看 串的模式匹配算法 求子串位置的定位函数 Index(S, P, pos) 求子串的定位操作通常称作串的模式匹配(其中子串P称 ...
- 数据结构——基于字符串模式匹配算法的病毒感染检测
实验四 基于字符串模式匹配算法的病毒感染检测 [实验目的] 1.掌握字符串的顺序存储表示方法. 2.掌握字符串模式匹配BF算法和KMP算法的实现. [实验内容] 问题描述 医学研究者最近发现了某些新病 ...
- 串--串的定义,顺序、链式存储结构,BF、KMP模式匹配算法(C语言描述)
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢! 一.串(String)的定义: 串(String):由零个或多个字符组成的 ...
- BF算法(暴力算法)--模式匹配算法
模式匹配算法:是数据结构中字符串的一种基本运算,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串,这就是模式匹配.用途:搜索引擎.拼写检查.语言翻译.数据压缩等. BF算法: ...
- 图解字符串的朴素模式匹配算法
复习串的朴素模式匹配算法 模式匹配 : 子串定位运算,在主串中找出子串出现的位置. 在串匹配中,将主串 S 称为目标(串),子串 T 称为模式(串).如果在主串 S 中能够找到子串 T, 则称匹配成功 ...
- KMP算法--字符串模式匹配算法
今天看到第四章<串>了,其中我觉得花的时间多一点的值得我写篇随笔的知识点就是:4.3 串的模式匹配算法:书上介绍了两种字符串匹配算法,一种是最简单最容易想到的逐个字符匹配算法(时间复杂度在 ...
- 解析BF(普通串模式匹配算法)算法
写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...
- Problem C: 算法4-6:KMP字符串模式匹配算法实现
Problem Description KMP算法是字符串模式匹配算法中较为高效的算法之一,其在某次子串匹配母串失败时并未回溯母串的指针而是将子串的指针移动到相应的位置.严蔚敏老师的书中详细描述了KM ...
- 朴素模式匹配与KMP模式匹配算法
一.朴素模式匹配 朴素模式匹配算法 就是遍历主串,然后把待匹配字符串与子串进行比对,先把待匹配子串的第一个字母与主串进行匹配,若匹配成功,则两串的坐标依次 ++,匹配不成功时,主串坐标返回到开始匹配时 ...
最新文章
- 初识区块链——用JS构建你自己的区块链
- C语言switch怎么算,超级新手,用switch写了个计算器程序,求指导
- 箱线图怎么判断异常值_异常数值识别(检测)
- 电脑排行榜笔记本_2019联想笔记本电脑排行榜
- 大数据技术如何实现核心价值
- har文件分析http_如何使用HAR文件分析一段时间内的性能
- [CM311-1A]-Android 分区管理以及系统启动流程和目录解析
- 笔记本java稳定wifi信号_笔记本wifi网速不稳定的解决方法
- Mysql如何解决幻读:
- 电机控制的fast decay与slow decay
- 苹果自带相册打马赛克_科普 | 谨慎使用苹果自带的笔打码订单哦!
- domian index域索引和全文索引
- Mysql 给表添加字段
- ArrayList.toArray()的用法
- Unity2D游戏开发之保卫萝卜
- 老路用得上的商学课-81-100学习(读书)笔记
- pythonjam游戏_独游网 - 专注独立游戏,为独立游戏发声!
- sql优化之:改善SQL语句
- 基于Simuink的无穷大电源供电系统和同步发电机三相短路的仿真
- c语言课程设计报告-计算器的实现,C语言课程设计--一个简易计算器的设计与实现.doc...
热门文章
- 如何量化炒股中的上升下降趋势及k线形态_如何量化炒股之代码思维
- eclipse、ddms、android studio连接不上手机问题解决
- DiskGenius无损调整C盘容量方法扩大c盘
- sys matlab,matlab中sys什么意思
- Spring Security OAuth2.0 认证协议【15】实现QQ第三方登录
- 天马行空(不定时更新)
- Ionic页面的生命周期 (事件)
- 基于MATLAB的光纤通信仿真
- tplink无线路由dns服务器,TPLINK无线路由器如何设置DNS服务器的DNS服务器地址,TPLINK无线路由器的地址 | 192.168.1.1手机登陆...
- Jenkins ERROR: Server rejected the 1 private key(s)