我愿称之KeBF算法
Ke的BF(Brute Force,暴力检索)法
关于其他 字符串匹配算法
示例源码
#include <stdio.h>
#include <string.h>
int main()
{
// 读入两个字符串
char ms[100], ps[100];
fgets(ms, sizeof(ms), stdin);
fgets(ps, sizeof(ps), stdin);
// 去掉换行符
ms[strcspn(ms, "\n")] = '\0';
ps[strcspn(ps, "\n")] = '\0';
int j = 0, index[100];
int msL = strlen(ms);
int psL = strlen(ps);
// 算法实现
for (int i = 0; i <= msL - psL; )
{
if ((msL - i) < psL)
break;
int t = 0;
while (t < psL && ms[i + t] == ps[t])
t++;
if (t == psL)
{
index[j] = i;
j++;
i += t;
}
else
i += (t > 0) ? t : 1;
}
// 输出结果
if (j > 0)
for (int i = 0; i < j; i++)
printf("%d ", index[i]);
else
printf("None");
printf("\n");
return 0;
}
与FittenCode的斗志斗勇
大胜利!
所以——
谁能拒绝一个写法比KMP简单,时间复杂度摸摸KMP(O(n)
& O(m+n)
),空间复杂度大概持平KMP的可可爱爱的KeBF呢