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

📄 keywords.cpp

📁 能够处理多个文件的最长公共子串
💻 CPP
字号:
  #include   <string>   
  #include   <iostream>   
  #include   <fstream>   
  #include   <vector>//包含VECTOR类的库,必须包含近来 
 
  using   namespace   std;  
  

  const   int   n=10000;   
  int   c[n][n];   
  char   str[n];   
  int   lcs_len(string   a,string   b,int   c[][n])   
  {   
  int   sa=a.length();   
  int   sb=b.length();   
          int   num_i,num_j;   
  for(num_i=0;num_i<=sa;++num_i)c[num_i][0]=0;   
  for(num_j=0;num_j<=sb;++num_j)c[0][num_j]=0;   
  for(num_i=1;num_i<=sa;++num_i)   
  {   
  for(num_j=1;num_j<=sb;++num_j)   
  {   
  if(a[num_i-1]==b[num_j-1])c[num_i][num_j]=c[num_i-1][num_j-1]+1;   
  else   if(c[num_i][num_j-1]>c[num_i-1][num_j])c[num_i][num_j]=c[num_i][num_j-1];   
  else   c[num_i][num_j]=c[num_i-1][num_j];   
  }   
  }   
  return   c[sa][sb];   
  }   
  char*bulid_lcs(char   str[],string   a,string   b)   
  {   
  int   k,num_i=a.length(),num_j=b.length();   
  k=lcs_len(a,b,c);   
  str[k]='\0';   
  while(k>0)   
  {   
  if(c[num_i][num_j]==c[num_i-1][num_j])num_i--;   
  else   if(c[num_i][num_j]==c[num_i][num_j-1])num_j--;   
  else   
  {   
  str[--k]=a[num_i-1];   
  num_i--;num_j--;   
  }   
  }   
  return   str;   
  }  
    
  void   main()   
  {   

  vector<string>   v;//定义存储字符串的VECTOR的格式,属于模板类   
                                  //的定义方法   
  ifstream   in("Event_Key_Source.txt");  
  ofstream   out("Event_Key_Dest.txt");
  string   line; 
  string   line1;
  string   line2;
  while(getline(in,line))   
  v.push_back(line);//将字符串加到V中的末尾单元   
 // for(int   i=1;i<v.size();i++)   
  //{
	//  cout<<i<<":"<<v[i]<<endl;

  //}
  line1 = v[3];
  line2 = v[20];
  cout<<line1<<endl;
  cout<<line2<<endl;
  cout<<bulid_lcs(str,line1,line2);
  v.clear();//清除VECTOR当中的所有内容,检测输出    
    
  }   
    
 

⌨️ 快捷键说明

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