这是理解KMP算法与字符串各类问题的重要基础,只有这里是突破口,很庆幸自己学会了.
简单的总结一下理解性问题: P串的每一位都对应一个状态, 每次读入一个字符, 就是从当前状态转移到下一个状态, 状态就是指P串匹配到哪一个pos了. 假设当前匹配到q位置,则q就是当前的状态, 下一个字符可以是26种字符, 会发生26种转移, Pq+a 的一个最长的P的前缀的后缀 就是加上字符a后转向的状态. 即Pk,k从q+1逐渐减小,一直到Pk与Pq+a匹配,那么目前的k就是最大的后缀的前缀匹配。
算法导论讲的太好了,停电了,白白。。