尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

KMP 学习笔记

KMP 学习笔记
📅 发布时间:2026/6/18 20:24:05

何为KMP?

我们先考虑一个字符串匹配的问题

暴力求解

一个简单地方法是,在主串枚举每一个字符,与模式串一位一位的匹配,失配则从主串的下一个字符开始,与模式串的第一位匹配。

这样匹配时间复杂度显然是不过关的。

KMP 算法

暴力算法之所以低效,因为它对主串中每个字符进行了大量的重复的比较,而 KMP 算法可以很好地解决这个问题。

这里先引入一个概念:border

border‌是字符串的最长公共前后缀,在KMP算法中用于优化字符串匹配效率,通过预处理border信息可跳过无效匹配位置

例如 ababa 这个字符串,他的前缀是 a,ab,aba,abab。后缀是 a,ba,aba,baba。故该字符串的 border 为 aba。

注意,前缀和后缀的长度都不能和字符串等长,故 border 的长度也不能和字符串等长。

再引入一个概念:Next 表

\(Next\) 表是一个存储 border 的表,其中 \(Next_i\) 表示以 \(S_i\) 结尾的前缀的 border。

如何求border?

要想做到合理的时间复杂度,border必须要在 \(O(n)\) 的时间复杂度下求出来,否则 KMP 就会退化。

若前缀往后一位与前缀 border 往后一位不相同,则往前找 border 的 border,直到出现相同的,设这个值为 \(j\)

如果 \(S_i = S_j\),则 \(Next_{i + 1} = j + 1\)

否则 \(next_{i + 1} = 0\)。

例题:P3375 【模板】KMP

相关新闻

  • CSP-S 2025游寄
  • 2025年诚信的转轮式热回收空调机组最新TOP厂家排名
  • 2025年热门的五金铰链厂家选购指南与推荐

最新新闻

  • 避雷!重庆日语学习者挑选培训机构看资质存证 - 晚香时候
  • 上海汽车音响改装首选 | 音乐人生:20年专业积淀,上海音响改装标杆品牌 - 音乐人生汽车音响
  • 5.18冲刺
  • 2026吸水棒选型指南:代表性源头厂家解析 满足多场景合规需求 - 资讯纵览
  • 破解湘潭实木衣柜定制痛点:五真原木定制方法论如何实现健康高品质落地? - 资讯纵览
  • Zotero Actions Tags:智能自动化插件让文献管理效率提升300%

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号