之前的文章《字符串匹配》中介绍了KMP算法,《一个全新的视角来看KMP算法(简单!形象!) 》中以一个独特的视角,重新审视了KMP算法,发现KMP算法原来可以这么简单。下面给出其Java实现。
public class KMP
{
static final int MAX = 100;
static int[] pi = new int[MAX];
//第一种方法
/** 思路:遍历T中的每一个字符,如果与P中的匹配,则二者游标递增,增到P的长度说明已经匹配,返回true
* 如果不匹配,分两种情况:P中间的字符不匹配,那么更新P的游标(根据pi的信息,这里需要加1)。
* 如果是P的第一个字符不匹配,这时说明T中当前位置之前的内容与P不匹配,