看啥推荐读物
专栏名称: 码农有道
专注于服务器后台开发,包括c/c++、Linux、数据库等技术栈。希望大家一起交流进步!
今天看啥  ›  专栏  ›  码农有道

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

码农有道  · 公众号  ·  · 2019-06-10 22:16
字符匹配场景字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到Jake Boxer的文章,我才真正理解这种算法。下面,我用自己的语言,试图写一篇比较好懂的KMP算法解释。图解KMP算法我们要在字符串"BBC ABCDAB ABCDABCDABDE"的中判断是否包含字符串"ABCDABD"。我们将ABCDABD称之为搜索词。1:首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照