首先请看阮一峰老师的这篇文章。链接为http://blog.csdn.net/wusecaiyun/article/details/49281645
1.首先明白一个字符串A的next数组,其含义是什么,比如说next[i]=1,就是说如果第i个字符(从1开始)与要匹配的字符串不相等,那么就把字符串A向右滑动,拿A的第一个字符继续与要匹配的字符串进行匹配。
2.next数组如何求?
next[i]数组的值其实就等于串A1A2...Ai-1中相同的前缀子串和后缀子串的最大长度加1。其中next数组的第一个值一定为0。
相同的前缀子串和后缀子串的最大长度的求法可以参见阮一峰的博客。