首先,BF算法是必须的:
int indexBF(SqString *s,SqString *t,int start)
{
int i=start-1,j=0;
while(i<s->length&&j<t->length)
if(s->data[i]==t->data[j])
{
i++;
j++;
}else{
i=i-j+1;
j=0;
}
if(j>=t->length)
return i-t->length+1;
else return 0;
}
然后我们写一个count函数:
int count1(SqString *s,SqString *t,int start){
int count=0,pos=start-1;
while(indexBF(s,t,pos))
{
count++;
pos=indexBF(s,t,pos)+1;
}
return count;
}
在下刚刚接触数据与结构算法这门课程,遇到算法难题希望能和大家一起讨论研究,请各位多多指教!!