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;
}
}
}
Java数据结构:Brute-Force模式匹配算法
猜你喜欢
转载自blog.csdn.net/qq_42192693/article/details/82666203
今日推荐
周排行