专栏名称: 程序员之家
程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!
目录
相关文章推荐
程序员小灰  ·  我的第一个副业是什么? ·  3 天前  
蚂蚁技术AntTech  ·  清华蚂蚁开源首个全异步强化学习训练系统,SO ... ·  2 天前  
51好读  ›  专栏  ›  程序员之家

字符串匹配的KMP算法

程序员之家  · 公众号  · 程序员  · 2017-03-30 20:59

正文

请到「今天看啥」查看全文


因为B与A不匹配,搜索词再往后移。


3.

就这样,直到字符串有一个字符,与搜索词的第一个字符相同为止。


4.

接着比较字符串和搜索词的下一个字符,还是相同。


5.

直到字符串有一个字符,与搜索词对应的字符不相同为止。


6.

这时,最自然的反应是,将搜索词整个后移一位,再从头逐个比较。这样做虽然可行,但是效率很差,因为你要把"搜索位置"移到已经比较过的位置,重比一遍。


7.

一个基本事实是,当空格与D不匹配时,你其实知道前面六个字符是"ABCDAB"。KMP算法的想法是,设法利用这个已知信息,不要把"搜索位置"移回已经比较过的位置,继续把它向后移,这样就提高了效率。







请到「今天看啥」查看全文