夜间福利网站,免费动漫av,一级做a爰片久久毛片免费陪,夜夜骑首页,黄色毛片视频,插插插操操操,综合av色

c語言中使用BF-KMP算法實例

時間:2025-12-11 16:12:26 C語言 我要投稿

c語言中關(guān)于使用BF-KMP算法實例

  直接上代碼

  復(fù)制代碼 代碼如下:

  #define _CRT_SECURE_NO_WARNINGS

  #include

  #include

  #include

  #define MAX_SIZE 255 /pic/p>

  typedef unsigned char SString[MAX_SIZE];/pic/p>

  /pic/p>

  int BFMatch(char *s,char *p)

  {

  int i,j;

  i=0;

  while(i < strlen(s))

  {

  j=0;

  while(s[i]==p[j]&&j < strlen(p))

  {

  i++;

  j++;

  }

  if(j==strlen(p))

  return i-strlen(p);

  i=i-j+1; /pic/p>

  }

  return -1;

  }

  /pic/p>

  void getNext(char *p,int *next)

  {

  int j,k;

  next[0]=-1;

  j=0;

  k=-1;

  while(j < strlen(p)-1)

  {

  if(k==-1||p[j]==p[k]) /pic/p>

  {

  j++;

  k++;

  next[j]=k;

  }

  else

  { /pic/p>

  k=next[k];

  }

  }

  }

  /pic/p>

  int KMPMatch(char *s,char *p)

  {

  int next[100];

  int i,j;

  i=0;

  j=0;

  getNext(p,next);

  while(i < strlen(s))

  {

  if(j==-1||s[i]==p[j])

  {

  i++;

  j++;

  }

  else

  {

  j=next[j]; /pic/p>

  }

  if(j==strlen(p))

  {

  return i-strlen(p);

  }

  }

  return -1;

  }

  int main()

  {

  int a, b;

  char s[MAX_SIZE], p[MAX_SIZE];

  printf("請輸入模式串:");

  scanf("%s", &s);

  printf("請輸入子串:");

  scanf("%s", &p);

  a = BFMatch(s, p);

  b = KMPMatch(s, p);

  if(a != -1)

  {

  printf("使用BF算法:%dn", a);

  }

  else

  {

  printf("未匹配n");

  }

  if(b != -1)

  {

  printf("使用KMP算法:%dn", a);

  }

  else

  {

  printf("未匹配n");

  }

  system("pause");

  }

  結(jié)果

  復(fù)制代碼 代碼如下:

  請輸入模式串:lalalalalaaaa

  請輸入子串:lalaa

  使用BF算法:6

  使用KMP算法:6

  請按任意鍵繼續(xù). . .

【c語言中使用BF-KMP算法實例】相關(guān)文章:

C語言冒泡排序算法實例12-19

C語言中使用快速排序算法對元素排序的實例12-17

C語言中實現(xiàn)KMP算法實例12-14

C語言插入排序算法及實例代碼02-19

C語言奇偶排序算法詳解及實例代碼11-12

C語言選擇排序算法及實例代碼03-16

Swift與C語言指針結(jié)合使用實例12-28

C語言實現(xiàn)歸并排序算法實例07-13

C語言輸出旋轉(zhuǎn)后數(shù)組中的最小數(shù)元素的算法原理與實例09-26

  • 相關(guān)推薦