KMP字符串匹配算法及其实现

--------------------------------天道酬勤

KMP(字符串1,字符串2)

kmp算法实现字符串1不回溯,一趟找到字符串1中是否包含字符串2。关键在于如何确定失配时字符串2的偏移量。以下用一张图来说明KMP字符串匹配算法及其实现_第1张图片

代码实现:

public class KmpDemo {
	/*
	 * 	字符串匹配算法演示
	 */
	public static void main(String[] args)
	{
		String t="abaabcac";
		String s="acabaabaabcacaabc";
		int[] arr=getNext(t);
		System.out.println(kmp(s,t,arr));
	}
	//生成模式串匹配失败后继续匹配的位置
	public static int[] getNext(String t)
	{
		int arr[]=new int[t.length()];
		arr[0]=-1;   //第一个字符不匹配
		int i=0;
		int j=-1;
		while(i

 

KMP字符串匹配算法及其实现_第2张图片

                                     -----------------------------共勉。

你可能感兴趣的:(算法,Java,学习笔记)