你被欺骗了很久:前缀和真前缀

2017 年 12 月 14 日 算法与数据结构 刘毅

作者:刘毅

https://www.61mon.com/index.php/archives/209/


相信很多读者都看过网上博客对 KMP 算法的讲解,其中必提及的一个名词就是:前缀。那么请问你心中理解的前缀的定义是什么呢?


对于字符串 “china”,其前缀为:


china, chin, chi, ch, c


你的想法是不是和上面一样呢。但是我很遗憾地告诉你,KMP 之前缀不是这样的,它是这样的:


chin, chi, ch, c



难道是我们记错前缀的概念了?不!不是我们记错了,只是有人在指鹿为马而已。下面来揭晓真像吧。




如此看来,KMP 之前缀并非前缀,而是真前缀!而大多数(几乎所有)的博客都在以 “真前缀” 去定义“前缀”。


next 数组是 KMP 的一个核心概念,而真前缀又是 next 数组的核心。算法本属于一个很严谨的领域,这种在重要概念上却还指鹿为马的行为,是应该需要我们注意和避免的。


不知道大家有没有发现,你所看过的 KMP 博文无一提及真前缀的定义,除了阮一峰的字符串匹配的 KMP 算法。




哈哈,阮老师太粗心了,在文章开头阮老师已经讲过,他是阅读了 Jake Boxer 的文章才明白 KMP 的,那原文是什么样的呢?




●本文编号536,以后想阅读这篇文章直接输入536即可

●输入m获取文章目录

推荐↓↓↓
 

大数据与人工智能

更多推荐18个技术类微信公众号

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

登录查看更多
0

相关内容

刘毅,国家水电可持续发展研究中心主任、中国水利水电科学研究院水电中心主任、结构所所长、正高级工程师、水利部水工程建设与安全重点实验室主任、中国大坝工程学会副监事长、中国水利学会理事、中国水力发电工程学会理事。长期从事复杂水工结构仿真分析、高坝安全等方面的研究,承担国家重点研发计划项目等40余项课题,高坝仿真、智能温控等多项成果应用于锦屏一级、白鹤滩等数十座混凝土坝工程。曾获国家科技进步二等奖、水利科技英才奖、水电英才奖
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
34+阅读 · 2020年4月5日
深度强化学习策略梯度教程,53页ppt
专知会员服务
176+阅读 · 2020年2月1日
【论文】欺骗学习(Learning by Cheating)
专知会员服务
26+阅读 · 2020年1月3日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
24+阅读 · 2019年11月2日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
已删除
架构文摘
3+阅读 · 2019年4月17日
【OCR技术】大批量生成文字训练集
七月在线实验室
9+阅读 · 2019年3月11日
抖音爬虫
专知
3+阅读 · 2019年2月11日
从贝叶斯理论到图像马尔科夫随机场
人工智能头条
6+阅读 · 2018年5月1日
国内各大平台的推荐算法,看到360的时候笑喷了……
黑客技术与网络安全
5+阅读 · 2018年3月28日
各平台的推荐算法,太贴切了!
算法与数据结构
4+阅读 · 2018年1月23日
各厂推荐算法!
程序猿
17+阅读 · 2018年1月13日
Arxiv
5+阅读 · 2018年3月6日
Arxiv
4+阅读 · 2016年9月20日
VIP会员
相关VIP内容
相关资讯
已删除
架构文摘
3+阅读 · 2019年4月17日
【OCR技术】大批量生成文字训练集
七月在线实验室
9+阅读 · 2019年3月11日
抖音爬虫
专知
3+阅读 · 2019年2月11日
从贝叶斯理论到图像马尔科夫随机场
人工智能头条
6+阅读 · 2018年5月1日
国内各大平台的推荐算法,看到360的时候笑喷了……
黑客技术与网络安全
5+阅读 · 2018年3月28日
各平台的推荐算法,太贴切了!
算法与数据结构
4+阅读 · 2018年1月23日
各厂推荐算法!
程序猿
17+阅读 · 2018年1月13日
Top
微信扫码咨询专知VIP会员