1. 单模式串匹配
    BF 算法和 RK 算法
    BM 算法和 KMP 算法
  2. 多模式串匹配算法
    Trie 树和 AC 自动机

一、单模式串匹配:

  1. BF: 简单场景,主串和模式串都不太长, O(m*n)
  2. KP:字符集范围不要太大且模式串不要太长, 否则hash值可能冲突,O(n)
  3. naive-BM:模式串最好不要太长(因为预处理较重),比如IDE编辑器里的查找场景,命令grep; 预处理O(m*m), 匹配O(n), 实现较复杂,需要较多额外空间.
  4. KMP:适合所有场景,整体实现起来也比BM简单,O(n+m),仅需一个next数组的O(n)额外空间;但统计意义下似乎BM更快,原因不明.

二、多模式串匹配:

  1. naive-Trie: 适合多模式串公共前缀较多的匹配(O(n*k)) 或者 根据公共前缀进行查找(O(k))的场景,比如搜索框的自动补全提示.
  2. AC自动机: 敏感词匹配 适合大量文本中多模式串的精确匹配查找, 可以到O(n).

【数据结构与算法】【应用】字符串匹配相关推荐

  1. 【数据结构与算法】字符串匹配 BF算法 RK算法

    单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法 多模式串匹配算法 Trie 树和 AC 自动机 一.BF 算法 1,BF算法是Brute Force的缩写,中文译作暴力匹配算法,也 ...

  2. 【数据结构与算法】字符串匹配 AC自动机

    单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法 多模式串匹配算法 Trie 树和 AC 自动机 AC 自动机 AC 自动机实际上就是在 Trie 树之上,加了类似 KMP 的 ne ...

  3. 【数据结构与算法】字符串匹配 KMP 算法

    单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法 多模式串匹配算法 Trie 树和 AC 自动机 KMP 算法 KMP 算法是根据三位作者(D.E.Knuth,J.H.Morris ...

  4. 【数据结构与算法】字符串匹配 BM算法

    单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法 多模式串匹配算法 Trie 树和 AC 自动机 BM算法 BM算法的核心思想是通过将模式串沿着主串大踏步的向后滑动,从而大大减少比较 ...

  5. 数据结构与算法之字符凭拼接最低字典序和数据流中取中位数

    数据结构与算法之字符凭拼接最低字典序和数据流中取中位数 目录 字符凭拼接最低字典序 数据流中取中位数 1. 字符凭拼接最低字典序 题目描述 思路: 创建一个比较器,比较的内容是(o1+o2).comp ...

  6. java 蓝桥杯算法提高 字符串匹配(题解)

    试题 算法提高 字符串匹配 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时 ...

  7. 【C#】KPM算法解决字符串匹配问题

    KPM算法解决字符串匹配问题 什么是KPM算法 步骤 Ⅰ根据<最大长度表>部分匹配表(next) 寻找最长前缀后缀 Ⅱ 根据 部分匹配表 进行匹配 代码实现 什么是KPM算法   Knut ...

  8. 算法五——字符串匹配(中)

    文章出处:极客时间<数据结构和算法之美>-作者:王争.该系列文章是本人的学习笔记. 1文本编辑器中的查找功能怎么实现 在word中有一个功能:查找某个字符串,将其替换为另一个字符串,就会用 ...

  9. 算法五——字符串匹配(上)

    文章内容.图片均来自极客时间. 如何借助哈希算法实现高效字符串匹配 1 概念和用途 字符串匹配:查找一个字符串A在字符串B中是否出现,这个过程就是字符串匹配.A称为模式串,B称为主串.主串的长度记为n ...

  10. KMP算法,字符串匹配,next与nextval数组求解

    目录 KMP算法简介 next数组手动求解过程 next数组求解(代码实现) 改进的KMP算法 手动求解nextval数组 nextval数组求解(代码实现) KMP算法简介 KMP算法是一种改进的字 ...

最新文章

  1. 【MATLAB】符号数学计算(四):符号表达式操作
  2. 你知道吗?OAuth2客户端有两种,认证方式有七种。
  3. Advanced Transact-SQL for SQL Server 2000 学习译文
  4. RabbitMQ(六):回调队列callback queue、关联标识correlation id、实现简单的RPC系统
  5. android.process.media+sd,android P系统WRITE_MEDIA_STORAGE添加读写SD卡权限
  6. SAP 电商云 Spartacus UI 的 urlParameter 配置原理
  7. [渝粤教育] 湘潭大学 土力学 参考 资料
  8. 微信小程序云开发之云函数的创建与环境配置
  9. HTTPS-使用Fiddler抓取HTTPS数据包原理
  10. 如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析(一)...
  11. 挑战程序设计竞赛题解目录
  12. 计算机文化基础—计算机软件
  13. 计算机公式上下左右,十五个常用函数公式,值得收藏
  14. 鸟哥私房菜重温笔记4
  15. pr用什么显卡比较好_用 PR 剪辑视频应该用什么 CPU 和显卡?
  16. 游戏开发资源列表 (转)
  17. Dubbo线程池耗尽原理分析Thread pool is EXHAUSTED
  18. 【多元统计分析】09.独立性检验与正态性检验
  19. linux下uboot内存测试,uboot中内存测试,内存检测方法
  20. 关于Java的抽象类与接口

热门文章

  1. select * 和select 所有字段的区别
  2. 怎么使用java官方demo?
  3. RANSAC算法在图像拼接上的应用的实现
  4. 上传文件至数据库并下载
  5. 20145302张薇《Java程序设计》实验三报告
  6. 动态条形图(RunBargraph)用于数据展示
  7. java程序转成mac应用,如何为Java应用程序创建Mac安装程序?
  8. js 静止f1到f12 和屏蔽鼠标右键
  9. Mysql:替换某个字段中的部分字符串——replace函数
  10. 中考物理可不可以用计算机,不能用计算机?2021年起广州中考课目改为“4+4”...