• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 类似AC自动机这样让人惊喜的算法还有哪些?

类似AC自动机这样让人惊喜的算法还有哪些?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了ac自动机算法,ac算法,ac bm算法,ac多模匹配算法,ac值算法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:类似 AC 自动机这样让人惊喜的算法还有哪些?
描述:

AC 自动机简单来说就是:

  1. 构建 Trie 树
  2. 在 Trie 树上构建失配指针,成为 AC 自动机
  3. 自动机上匹配字符串

学过了一年多从来不觉得有什么特别之处,直到今天才发现其简单直观的匹配方式和效率是有多赞!

所以想问一下大家还有其他类似让人惊叹不已的算法么?可以分享一下,互相学习。


解决方案1:

基于DFA的多正则引擎:

  • AC 自动机解决了匹配多个精确 term 的问题;多正则引擎解决的是匹配多个正则表达式的问题。
  • 理想情况下 AC 自动机匹配过程中碰到 term 的结尾时触发动作:告诉调用者,在这里发现了完整匹配,能匹配的 term id 是 {id1,id2...} 。多正则引擎对正则表达式做同样的事情。

解决方案2:

  • 后缀数组, 后缀树, KMP
  • AC自动机 实际上是 KMP 的升级版, 构建 fail 指针
  • 经典的算法都是很巧妙的, 看看 算法导论 是个不错的选择. >.<

解决方案3:

AC自动机结合字符串搜索算法BM => ACBM算法

看了BM和KMP算法的代码, 简直太帅了!

广告: 字符串搜索算法BM和KMP和SUNDAYC实现

注: 算法的代码肯定不是我原创, 说实话, 看懂那段代码也是挺累的...


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 类似AC自动机这样让人惊喜的算法还有哪些?

相关文章

  • 2017-06-07 macbookpro上需要分区么?
  • 2017-06-07 ASPNETWebAPI对PUT/DELETE的支持?
  • 2017-06-07 mac终端man命令显示中文文档
  • 2017-06-07 无法升级标准用户
  • 2017-06-07 JBoss后台运行时系统环境变量变化
  • 2017-06-07 (shell)useradd-s/sbin/nologin-M-gmysqlmysql是什么意思
  • 2017-06-07 macbooknginx403
  • 2017-06-07 文件传输协议如何自定义应用层传输协议
  • 2017-06-07 Python32发送邮件带附件UnicodeEncodeError
  • 2017-06-07 api超时统计 api超时如何在服务端统计

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 在发布ejb项目成jar文件时报如下错:
    • python中用requests模块保持登录状态出现问题
    • 关于flask的目录结构问题。
    • jboss7在哪里配置maxPostSize参数?
    • 请问七牛提供crossdomainxml吗?因为如果用Flash跨域访问,如果没有这个文件就没法优化图片
    • 一道百度面试题------------C/C++中一次遍历将string转float(带小数点)
    • {python}求教大神:怎么tryexcept错误
    • 服务器down掉重启,redis里设计的分表自增id又重新开始计数,如何恢复?
    • 请教一个初级的local访问出错的问题
    • python爬虫python运行后没有任何反馈要怎么排查

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有