Kmp算法和BF算法的区别在于不需要把“搜索位置”移动到已经比较过的位置。
例子-->
移动位数 = 已经匹配的字符数 - 对应匹配部分字符串前缀和后缀共有长度
如以上主串中的“abab”和目标串中的“abad”,已经匹配的字符数为3(“aba”),
“aba”的前缀为[a,ab],后缀为[ba,a]。共有“a”的长度为1 ,移动位数=3-1=2;
因此目标串中的匹配字符串前缀和后缀信息是固定的,我现在只需要把这个信息放在一个数组里
参考-->
1-> http://blog.csdn.net/hyjoker/article/details/51190726
2-> https://www.cnblogs.com/huangxincheng/archive/2012/12/01/2796993.html