码迷,mamicode.com
首页 > 编程语言 > 详细

KMP算法

时间:2017-08-09 20:03:53      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:cloud   .com   多少   www   博客   另一个   字符   前缀和   高效   

  KMP算法简而言之就是告诉你一个字符串是否包含另一个字符串。

   对于是否包含一个字符串,大部分人想做的就是挨个判断,但是这样并不是很优,所以就有了KMP。

  当你对A(被匹配)字符串和B(匹配)字符串进行匹配时,如果匹配到不匹配,那么我们要做的就是把匹配字符串B往后移,但是移动多少呢?

  其实我觉得这就是关键吧。

  KMP的思想就是不把“搜索位置”移回已经比较过的位置,继续把他往后移,以此提高效率。

  那么具体移多少呢?

  移动位数 = 已匹配的字符数 - 对应的部分匹配值

  那么问题来了,部分匹配值怎么算的?

  其实是根据前缀和后缀来的。

   此处配上看的博客:http://www.cnblogs.com/c-cloud/p/3224788.html

  留坑等以后完善

KMP算法

标签:cloud   .com   多少   www   博客   另一个   字符   前缀和   高效   

原文地址:http://www.cnblogs.com/gggyt/p/7327146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!