BF算法

BF算法的实现

算法就是两个字符串对应的字符一直匹配,首先第一个字符串和第二个字符串从0位置开始匹配,如果匹配失败,第二个字符串回到起点,第一个字符串回到上一次匹配起点+1的位置,然后重复上面步骤继续匹配。

#include <stdio.h>
int BF(char *a,char *b)
{
 char *p1,*p2;
 int i=0;
 p1=a;
 p2=b;
 while(*p2!='\0'&&*p1!='\0')
 {
  if(*p2==*p1) //对等位置的字符相等就移一位 
   {
    p1++;
    p2++;
   }
  else       //对等位置字符不等p1走一位,p2回到开始的位置 
   {
    i++;
    p1=a+i;
    p2=b;
   }
 }
 if(*p2=='\0') //p2走完说明匹配成功 
  return 1;
 else    
  return 0;  
}
int main(void)
{
 char a[20];
 char b[5];
 int k;
 scanf("%s%s",a,b);
 k=BF(a,b);
 if(k==1)
  printf("YES");
 else
  printf("NO");  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值