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

发布于 2022-08-30 16:14:41 字数 207 浏览 10 评论 0

AC 自动机简单来说就是:

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

素衣风尘叹 2022-09-06 16:14:41

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

看了BMKMP算法的代码, 简直太帅了!

广告: 字符串搜索算法BMKMPSUNDAYC实现

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

莫言歌 2022-09-06 16:14:41
  • 后缀数组, 后缀树KMP
  • AC自动机 实际上是 KMP 的升级版, 构建 fail 指针
  • 经典的算法都是很巧妙的, 看看 算法导论 是个不错的选择. >.<
无力看清 2022-09-06 16:14:41

基于DFA的多正则引擎

  • AC 自动机解决了匹配多个精确 term 的问题;多正则引擎解决的是匹配多个正则表达式的问题。
  • 理想情况下 AC 自动机匹配过程中碰到 term 的结尾时触发动作:告诉调用者,在这里发现了完整匹配,能匹配的 term id 是 {id1,id2...} 。多正则引擎对正则表达式做同样的事情。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文