一个字符串kmp算法的C代码实现
-
本代码实现KMP算法的核心其实只有 getNext() 方法 和 indexStringByKMP() 2个方法,为了 输入例子方便,实现了一个可以任意输入字符串的功能以及其他方便测试的方法以供测试用,具体 请看代码内注释
-
附带了暴力匹配的算法 indexString()
网上许多教程都采用了字符串数组下标从1开始,next数组从1开始 这种做法,但这样其实对于习惯 从0开始的我来说确实是个灾难,(笑) 于是在仔细研究kmp算法的实现原理后,决定自己实现kmp算法 ,也请各位在issues上批评指证。视频参考了B站上一位印度小哥的讲解,他的视频完全是机器思路,对我自己实现这个算法帮助很大,网上有很多视频讲解,但都是适用于笔试的做法,其实对代码的实现造成了困难,也希望这个机器实现的思路能帮助希望学习KMP算法机器实现的同学。
-
本代码数组下标都是从0开始
-
编译环境: windows , minGW64 , Clion