数据结构—BF字符串模式匹配

原理:参考趣学数据结构

代码:

#include<stdio.h>
#include<stdlib.h>
int BF(char * S, char* T,int pos,int n,int m) {//暴力算法求解子串T在S中第一次出现的位置int i = pos, j = 0;while (i <= n && j <= m) {if (S[i] == T[j]) {i++;j++;}else {i = i - j + 2;j = 0;}}if (j = m+1) {//返回查找成功子串的初始位置printf("查找成功子串的初始位置为:%d\n", i - j);return i - j;}printf("查找子串失败!\n");return -1;
}
int main() {char S[7] = "fagass";char T[4] = "ass";//'\0'字符串结束的标识BF(S, T, 0,5, 2);printf("\n");system("pause");return 0;
}

测试截图:

时间复杂度O(n x m),空间复杂度O(1)

如果存在什么问题,欢迎批评指正!谢谢!

数据结构---BF字符串模式匹配相关推荐

  1. 数据结构之字符串模式匹配

    程序源代码:点击打开链接 1.引入 字符串模式匹配.首先我们引入目标串,模式串的概念,而字符串模式匹配就是查找模式串在目标串中的位置. 2.brute-Force算法 brute-Force算法,我的 ...

  2. 算法笔记:简单的字符串模式匹配-BF算法

    字符串模式匹配是匹配字符串A中是否存在子串a,一般字符串的结尾为'\0',可以以此作为字符串结束的判定标准. 其过程原理图如下所示: 给出源代码: #include<stdio.h> #i ...

  3. 数据结构——基于字符串模式匹配算法的病毒感染检测

    实验四 基于字符串模式匹配算法的病毒感染检测 [实验目的] 1.掌握字符串的顺序存储表示方法. 2.掌握字符串模式匹配BF算法和KMP算法的实现. [实验内容] 问题描述 医学研究者最近发现了某些新病 ...

  4. 字符串模式匹配--KMP之美

    字符串模式匹配: 给定字符串,要求在该字符串(主串)中找到所有匹配一个模式串的子串(一般是返回子串在字符串中的开头位置).这里把问题简化一下--在该字符串中找到第一个匹配对应模式串的子串即可.要找出剩 ...

  5. KMP字符串模式匹配详解

    KMP字符串模式匹配详解 KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法.简单匹配算法的时间复杂度为O(m*n);KMP匹配算法.可以证明它的时间复杂度为O(m+n).. 一 ...

  6. 深入剖析Redis系列(五) - Redis数据结构之字符串

    前言 字符串类型 是 Redis 最基础的数据结构.字符串类型 的值实际可以是 字符串(简单 和 复杂 的字符串,例如 JSON.XML).数字(整数.浮点数),甚至是 二进制(图片.音频.视频),但 ...

  7. lisp 提取字符串中的數字_Redis 数据结构之字符串的那些骚操作

    Redis 字符串底层用的是 sds 结构,该结构同 c 语言的字符串相比,其优点是可以节省内存分配的次数,还可以... 这样写是不是读起来很无聊?这些都是别人咀嚼过后,经过一轮两轮三轮的再次咀嚼,吐 ...

  8. 【算法视频】字符串模式匹配--布鲁特.福斯算法

    2.4.字符串模式匹配 资讯网址:www.qghkt.com 腾讯课堂:https://qghkt.ke.qq.com/20个常用算法 模式串(或子串)在主串中的定位操作通常称为串的模式匹配,它是各种 ...

  9. KMP算法字符串模式匹配

    KMP字符串模式匹配详解 来自CSDN     A_B_C_ABC 网友 KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法.简单匹配算法的时间复杂度为O(m*n);KMP匹配算 ...

最新文章

  1. 网络营销——网络营销专员如何做好网站外链优化工作?
  2. OpenCV下三对点计算仿射变换实现图像的水平镜像(翻转)的详细说明和源程序
  3. python刷leetcode_零基础python刷leetcode -- 3. Longest Substring Without Repeating Characters
  4. 【机器学习】数据挖掘实战:金融贷款分类模型和时间序列分析
  5. 零基础自学java的难处_零基础自学Java 在学习中要注意哪些问题
  6. linux中wget命令出现错误,(转)linux中wget未找到命令
  7. Mac 下安装mysqldb 问题:一条命令解决mysql_config not found
  8. 炒菜机器人放食材的顺序_如果给你个做饭机器人,你会让它做些什么饭菜?
  9. Kaggle-泰坦尼克号
  10. HTML JQuery 技巧总结
  11. android中间隔执行程序,Android:在SeekBar中设置间隔
  12. android 通知栏样式_Android通知样式
  13. java中String的特点,字面对象和构造方法的区别
  14. 【心音信号】基于matlab GUI EMD心音信号特征提取【含Matlab源码 1735期】
  15. 计算半圆弧的周长及半圆的面积
  16. (二)D3D9视频显示的流程与初始化
  17. ios 视频处理详解一(视频导出)
  18. 读书札记:音律的基本类型
  19. 物联网连接拼图:蜂窝与非蜂窝
  20. 小白练习cocos creator——property用法记录

热门文章

  1. ubuntu之Unable to lock the administration directory(/var/lib/dpkg/), are you root?13 Permission denie
  2. Android之如何解决popupWindow(pw.setFocusable(true))按返回键和menu键退出
  3. Struts2的Interceptor和Listener以及Plugin
  4. [python opencv 计算机视觉零基础到实战] 三、numpy与图像编辑
  5. 【C语言简单说】八:分支结构之if(1)
  6. cvtcolor python opencv_二值分析 | OpenCV + skimage如何提取中心线
  7. 可以自发热的袜子,穿上暖3.9℃,这个冬天不再怕脚冷!
  8. php中unset面试题,php unset和引用——由一道php面试题引发的思考
  9. 绘制矩形php,PHP_php绘制一个矩形的方法,本文实例讲述了php绘制一个矩 - phpStudy...
  10. oracle中sql行数的计算,Oracle技术网—如何利用DBMS_SQL包和游标计算当前用户下所有表的行数...