⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bmnew.cpp

📁 BM 算法的VC实现
💻 CPP
字号:
#include<iostream.h>
#define N 15

int k;
int n=15;
int m=8;

char t[]={' ','I', 'a','m', 'a', 's','t','u','d','e','n','t'};

char p[]={' ','s','t','u','d','e','n','t'};


int dist_t[N]; 

int flag=0;//标识位



void setdist()    //set dist_t[]
{

   for(int i=1;i<=n;i++)
       dist_t[i]=m;

   for( i=1;i<=n;i++)
   {
    
     for(int j=1;j<=m-1;j++)

     {
	   if(t[i]==p[j])
	      dist_t[i]=m-j;
	 
	 }//for

   }//for


}




void match()
{

int i=m;
int j;

 
  do{
     j=m;
	 k=i;

	 while((j>0)&&(p[j]==t[k]))
       {
	     j=j-1;
         k=k-1;
        }
    

     if(j==0)
	 {  
	    cout<<"matching is successful!";
        cout<<"position is :";
	   	cout<<i;
       i=i-m+1;
		flag=1;+1;
      }
	
     else
        
	  i=i+dist_t[i];

  }while (i>n||j==0);


   
}




int main(void)
{ 

   setdist();
   match();

   if(flag==0)

   cout<<"匹配失败";

   return 0;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -