Java数据结构:Brute-Force模式匹配算法

public class BruteForce模式匹配算法 extends SeqString{
	static String s = "abcdefghijklmnopqrstuvwsyz";//匹配字符串
	static SeqString t =new SeqString("syz");	//被匹配的字符串
	public static void main(String[] args) {
		System.out.println(indexOf_BF(t,1));	//调用函数 
	}

	public static int indexOf_BF(IString t, int start) {
		int slen, tlen, i = start, j = 0;//i为匹配字符串的开始匹配位置,j为被匹配字符串的长度
		slen = s.length();		//匹配字符串的长度
		tlen = t.length();		//被匹配的字符串的长度
		while ((i < slen) && (j < tlen)) {	//当i小于匹配字符串的长度,j小于被匹配的字符串的长度
			if (s.charAt(i) == t.charAt(j)) {	//当某一项一样,开始匹配
				i++;		//匹配字符串匹配位置+1
				j++;		//被匹配字符串匹配位置+1
			} else {		//如果没有一样或者匹配失败
				i = i - j + 1;	//开始位置+1
				j = 0;			//被匹配位置从首位开始
			}
		}
		if (j >= t.length()) {		//如果匹配大于等于被匹配字符串长度,说明匹配成功
			return i - tlen;		
		} else {	//否则匹配失败
			return -1;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42192693/article/details/82666203
今日推荐