蛮力字符串匹配有很多算法,今天我们要讲的是BFS(Bobby First Search)算法。
这种搜索的定义是:在一个字符串里,从前往后去查找第一个Bob
出现的位置(不区分大小写)。
输入格式
输入一个仅包含大小写字母和数字的字符串s (|s|<=100)。
输出格式
输出一个数字,表示使用BFS算法对这个字符串搜索的结果(0-index)。
如果搜索不到,则输出-1。
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
|
以文本方式显示
|
1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
|
以文本方式显示
|
1秒 | 64M | 0 |
#include<stdio.h>
#include<string.h>
int main()
{
char s[10000];
int i=0,length,flag=0;
gets(s);
length=strlen(s);
while(1)
{
for(;i<length;i++)
{
if((s[i]=='B')||(s[i]=='b')) break;
}
if(i>=(length-2)) break;
else
{
if(((s[i+1]=='O')||(s[i+1]=='o'))&&((s[i+2]=='B')||(s[i+2]=='b')))
{
flag=1;
break;
}
else
i++;
}
}
if(flag) printf("%d\n",i);
else printf("-1\n");
}