字符串匹配算法
BF算法
算法思想
BF算法的思想就是从主串S的第一个字符开始和模式T的第一个字符进行比较,若相等,则继续比较两者的后续字符;若不相等,则从主串S的第二个字符开始和模式T的第一个字符进行比较,重复上述过程,若T中的字符全部比较完毕,则说明本趟匹配成功;若S中的字符全部比较完毕,则匹配失败。这个算法称为朴素的模式匹配算法,简称BF算法
时间复杂度
该算法最坏情况下要进行M(N-M+1)次比较,时间复杂度为O(MN)。
Java实现
String s = "yorhellomynameisrrhowareyouwhatisyornameyou";
String t = "your";
boolean flag = false;
int index = 0;
int len = s.length();
for(int i=0; i<len; i++) {
char c = s.charAt(i);
if(c == t.charAt(index)) {
index++;
if(index == t.length()) {
flag = true;
break;
}
} else {
index = 0;
}
}
System.out.println("result: "+flag);