BF
BF算法就是字符串模式匹配的朴素算法(即蛮力匹配)
过程
设主串S,模式T
- 从S的第一个字符和T的第一个字符开始比较,如果匹配则从S的第二个字符与T的第二个字符开始匹配。
- 如果某一个字符匹配失败,则进行回溯,S移至第二个字符,T归为第一个字符,比较S的第二个字符与T的第一个字符。
- 重复1,2步骤,直到匹配成功或者超过S的总长度,匹配失败
代码
//匹配成功返回索引,匹配失败返回-1
int bf(const char s[],const char t[]){
int start = 0;
int i = 0,j = 0;
while((s[i] != '\0') && (t[j] != '\0')){
if(s[i] == t[j]){
i ++;
j ++;
}else{
start ++;
i = start;
j = 0;
}
}
if(t[j] == '\0') return j;
else return -1;
}