朴素的模式匹配,也成为“布鲁特-福斯算法”;

基本思想:从主串的第一个字符起与模式串的第一个字符进行比较,若相等,则继续逐字符进行后续比较,否则从主串第二个字符开始,直至模式串中每个字符依次和主串中一个连续的字符序列相等为止,此时称匹配成功。如果不能在主串中找到与模式串相同的子串,则匹配失败。
//S为主串,T为模式串,pos为从主串中开始查找的位置,T若不是S的子串,则返回-1;
int Index(char S[],char T[],int pos)
{
int i,j,slen,tlen;
i=pos;j=0
slen=strlen(S);
tlen=strlen(T);
while(i<slen&&j<tlen)
{
if(S[i]==T[j]{i++;j++})
else
{
i=i-j+1;//返回主串下一个位置
j=0;
}
}
if(j>=tlen) return i-tlen;
else{return -1;}
}

布鲁特-福斯算法(字符串匹配)相关推荐

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

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

  2. C++KMP算法字符串匹配(附完整源码)

    C++KMP算法字符串匹配 C++KMP算法字符串匹配完整源码(定义,实现,main函数测试) C++KMP算法字符串匹配完整源码(定义,实现,main函数测试) #include <iostr ...

  3. kmp算法字符串匹配C语言实现

    kmp算法字符串匹配 在leetcode做题时,有道题就是写一个strstr函数,先用思路最简单的直接两个循环做,提示时间超过限制.就查了查kmp的资料 翻了下算法导论,感觉像在看数学书,看不太懂,最 ...

  4. 数据结构与算法 / 字符串匹配 / BF、PK 算法

    零.前言 为了下面便于说明,先定义两个名词,分别是主串和模式串.在字符串 A 中查找字符串 B,则 A 为主串,B 为模式串. 假设,主串中字符数量为 L1,模式串的字符数量为 L2 . 一.BF 算 ...

  5. KMP算法-字符串匹配(浅显易懂)

    KMP的经典思想就是:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配. 本篇将以如下顺序来讲解KMP, 什么是KMP KMP有什么用 什么是前缀表 为什么一 ...

  6. [JAVA][算法] [字符串匹配]KMP

    我们为什么需要KMP? 在字符串匹配问题中,我们需要找到匹配串pattern在原串text中的位置,一种显而易见的思路就是暴力匹配,如图所示,我们把pattern放置到text中的每个位置进行比较即可 ...

  7. 头歌-数据结构与算法-字符串匹配

    第1关:实现朴素的字符串匹配 #include <stdio.h> #include <stdlib.h> #include "mystr.h" #prag ...

  8. 数据结构与算法 / 字符串匹配 / Trie 树

    一.诞生原因 传统字符串比较时,需要将待比较的字符串与字符串集合中每一个串进行比较,结果比较浪费时间. Trie 树的发明就是为了解决上述问题. 二.基本信息 又称字典树,是一种树形结构,是一种哈希树 ...

  9. 字符串处理:布鲁特--福斯算法

    基本思想: 其基本思想是从主串的第一个字符起与模式串的第一个字符比较,若相等,则继续逐个字符的后续比较,否则从主串的第二个字符起与模式串的第一个字符重新开始比较,直至模式串中的每个字符依次和主串中的一 ...

  10. KMP算法字符串匹配

    对于暴力搜索法,当搜索词对应的字符与字符串中的字符不匹配时.将搜索词整个后移一位,再从头逐个比较.这样做虽然可行,但是效率很差,因为你要把"搜索位置"移到已经比较过的位置,重比一遍 ...

最新文章

  1. 教你如何找出 .NET 进程中的所有托管异常
  2. springboot rabbitmq direct exchange和topic exchange 写法上关于路由键的区别
  3. python中的decode(编码)和encode(解码)
  4. Guava中针对集合的 filter和过滤功能
  5. GraphViz :1 安装和简单使用
  6. python如何读取csv文件某几行某几列_关于python:读取.csv文件时,我似乎无法指定列dtypes...
  7. js (查重)键值对数组(一维数组),并归类计数
  8. php 5.5 编译安装,php5.5.38编译安装
  9. 牛客网暑期ACM多校训练营(第五场)J-plan (模拟)
  10. Vue+element 解决浏览器自动填充记住的账号密码问题
  11. 如何将特定提交推送到远程,而不是之前的提交?
  12. oracle错误输出,oracle – SQL小提琴输出错误
  13. 计算机物质与结构,计算机辅助高中化学物质结构教学的探索与实践
  14. IPC进程间通信/跨进程通信
  15. 汇编篇 :关于地址总线与数据总线的换算
  16. Elasticsearch 分布式搜索引擎 速学
  17. mysql benchmark tool_使用MYSQL benchmark - DBT2 Benchmark Tool遇到的问题
  18. 怎么屏蔽还有照片_在朋友圈发男神照片没屏蔽父母,老妈的回应亮了
  19. 如何自己学习51单片机
  20. 初学者对PHP的总结,PHP_献给php初学者(入门学习经验谈),1.概要:学习任何语言都需要 - phpStudy...

热门文章

  1. 立秋后注意脚部保暖 试试量身定制合脚鞋
  2. 转载:技术大停滞——范式春梦中的地球工业文明8 反思与总结
  3. 解读《三字经》(7)
  4. 自学神经网络系列 —— 8 前馈神经网络
  5. 调整计算机繁体,在线繁体转换
  6. unity3d通过粒子系统制作火焰效果
  7. Python使用-错误“name ‘requests‘ is not defined”的探查
  8. Redis——SDS
  9. Linux以百万兆字节显示内存大小
  10. 基金定投需要注意波段操作!(文章有点长,含Python代码)