4.2.1朴素模式匹配算法

这篇具有很好参考价值的文章主要介绍了4.2.1朴素模式匹配算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是字符串的模式匹配:

4.2.1朴素模式匹配算法

 从这段字符串里面搜索内容,被搜索的字符串我们称之为主串。

4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

也可能匹配不到

4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 主串长度为n,模式串长度为m。

朴素模式匹配算法:将主串中所有长度为m的字串依次与模式串对比,直到找到一个完全匹配的字串或所有的字串都不匹配为止。

最多对比n-m+1个字串

将这些字串与模式串对比

4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 

 

接下来:不使用字符串的基本操作,直接通过数组下标实现朴素模式匹配算法。

4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 i跟j是相同的,当i和j我们需要将主串指针i指向下一个字串的第一个位置,模式串指针j回到模式串的第一个位置。

4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法4.2.1朴素模式匹配算法

4.2.1朴素模式匹配算法

 

4.2.1朴素模式匹配算法

 返回i-T.length就是字串在主串的第一个字符的位置。

这样我们就得到了:

4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

  i<=S.length    如果i指针超出了S主串的长度,就会失败

 4.2.1朴素模式匹配算法

 4.2.1朴素模式匹配算法

 主串的长度往往远大于子串的长度。

4.2.1朴素模式匹配算法

 返回的是子串的起始位置哦!文章来源地址https://www.toymoban.com/news/detail-424557.html

到了这里,关于4.2.1朴素模式匹配算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#,字符串匹配(模式搜索)KMP算法的源代码与数据可视化

      D.E.Knuth   J.H.Morris KMP 算法(Knuth-Morris-Pratt 算法)是其中一个著名的、传统的字符串匹配算法,效率比较高。 KMP算法由 D.E.Knuth , J.H.Morris 和 V.R.Pratt 在 Brute-Force 算法的基础上提出的模式匹配的改进算法。因此人们称它为“克努特—莫里斯—普拉特算法”,简称KMP算法。K

    2024年01月25日
    浏览(56)
  • 【字符串匹配】暴力匹配算法

    ​ 暴力匹配算法,也称为朴素字符串匹配算法,是一种简单但不高效的字符串匹配方法。它的原理非常直观,其主要思想是逐个字符地比较文本串和模式串,从文本串的每个可能的起始位置开始,依次检查是否有匹配的子串。以下是暴力匹配算法的详细原理: 1. 一个字一个

    2024年02月09日
    浏览(53)
  • 字符串查找匹配算法

    字符串匹配(查找)是字符串的一种基本操作:给定带匹配查询的文本串S和目标子串T,T也叫做模式串。在文本S中找到一个和模式T相符的子字符串,并返回该子字符串在文本中的位置。 Brute Force Algorithm,也叫朴素字符串匹配算法,Naive String Matching Algorithm。 基本思路就是将

    2024年02月14日
    浏览(58)
  • PTA 7-1 字符串模式匹配(KMP)

    给定一个字符串 text 和一个模式串 pattern,求 pattern 在text 中的出现次数。text 和 pattern 中的字符均为英语大写字母或小写字母。text中不同位置出现的pattern 可重叠。 输入格式: 输入共两行,分别是字符串text 和模式串pattern。 输出格式: 输出一个整数,表示 pattern 在 text 中的出

    2024年02月06日
    浏览(42)
  • 字符串匹配算法:KMP

    Knuth–Morris–Pratt(KMP)是由三位数学家克努斯、莫里斯、普拉特同时发现,所有人们用三个人的名字来称呼这种算法,KMP是一种改进的字符串匹配算法,它的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。它的时间复杂度是 O(m+n) 字

    2024年02月06日
    浏览(63)
  • 字符串匹配-KMP算法

    KMP算法,字符串匹配算法,给定一个主串S,和一个字串T,返回字串T与之S匹配的数组下标。 在学KMP算法之前,对于两个字符串,主串S,和字串T,我们根据暴力匹配,定义两个指针,i指向主串S的起始,j指向字串T的起始,依次比较,如果 主串i位置的值等于子串j位置的值,

    2024年02月14日
    浏览(55)
  • 【kmp算法】字符串匹配

    kmp算法解决的是字符串匹配的问题,具体来说假定我们要在主串s[ ] 中匹配模式串p[ ],找到匹配到的位置loc; 最自然的想法是暴力写法 (BF)枚举主串字符s[ i ] ,和模式串p[ j ]。一个一个匹配,如果匹配失败,i指针回退回起点,往前进一位,再次进行比较,知道匹配成功。

    2024年02月04日
    浏览(79)
  • 【蓝桥杯算法题】字符串匹配算法

    这段代码实现了一个过滤字符串中非字母字符的功能,并统计字母个数。 首先,在主函数中,定义一个长度为100的字符数组str,用fgets函数从标准输入获取用户输入的字符串。 然后调用filterLetters函数,利用指针p1和p2遍历字符串中的每个字符,判断是否为字母字符, 若是,则

    2024年02月08日
    浏览(50)
  • 一些常见的字符串匹配算法

    作者:京东零售 李文涛 字符串匹配在文本处理的广泛领域中是一个非常重要的主题。字符串匹配包括在文本中找到一个,或者更一般地说,所有字符串(通常来讲称其为模式)的出现。该模式表示为p=p[0..m-1];它的长度等于m。文本表示为t=t[0..n-1],它的长度等于n。两个字符串都建

    2023年04月25日
    浏览(43)
  • 字符串匹配算法(BF&&KMP)

    个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构初阶(C实现)】 在学习这个算法之前,我们先来看看什么时字符串匹配算法,简单来说 有一个主串和一个子串,查找子串在主串的位置,然后返回这个位置

    2023年04月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包