字符串匹配算法,设定S为文本串,P为模式串。查找P是否是S的子串,即字符串匹配
BF:
即暴力遍历:
i,j分别是S、P的下标,一旦不匹配,j从0、i从i-j+1开始,[(i-j+1)相当于i回退到和j对应的i的下一位] 该算法复杂度在m*n上,
int BF(char *s,char *p)//查找p是否是s的子串,即 s是主串,p是模式串,
{
int i=0,j=0;
while(i<strlen(s)){
if(*(p+j)=='\0')
return i-j;
if(*(s+i)==*(p+j)){
++i;
++j;
}
else{
//i++; "aaaec","aaec" Wrong
i=i-j+1;
j