给定一个主串(以 S 代替)和模式串(以 P 代替),要求找出 P 在 S 中出现的位置,此即串的模式匹配问题。Knuth-Morris-Pratt 算法(简称 KMP)是解决这一问题的常用算法之一,这个算法是由高德纳(Donald Ervin Knuth)和沃恩 · 普拉特在 1974 年构思,同年詹姆斯 ·H· 莫里斯也独立地设计出该算法,最终三人于 1977 年联合发表。
//串匹配问题
public class StringMatch{
//解法一:暴力匹配
public static int IsMatch(String s,String p)
{
int i=0;
int j=0;
char[]s1=s.toCharArray();//记录原串
char[]p1=p.toCharArray();//记录模式串
while(i<s1.length&&j<p1.length)
{
if(s1[i]==p1[j]) //若相等,都后移一位
{
i++;
j++;
}
else //原字符串后移一位,模式串从头匹配
{
i=i-j+1;