BF算法


 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 int BF(char *A, char *B) {
 5     int i = 0,j=0;
 6     while(i < strlen(A) && j < strlen(B)) {
 7         if(A[i]==B[j]) {
 8             i++;
 9             j++;
10         } else {
11             i = i - j + 1;    //j代表j(i)移动的距离,i返回初始位置再从下一个开始 
12             j = 0;
13         }
14     }
15     if(j == strlen(B)) 
16         return i - strlen(B) + 1;    //加一是第几个,不加一是下标 
17         
18     return -1;
19 }
20 
21 int main() {
22     char *A = "ababcabcacbab";
23     char *B = "abcac";
24     int num = BF(A, B);
25     printf("A = %s/nB = %s/n", A, B);
26     printf("number = %d/n",num);
27 
28     return 0;
29 }

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/273444.html

(0)
上一篇 2022年7月10日 21:33
下一篇 2022年7月10日 22:03

相关推荐

发表回复

登录后才能评论