帶 和 的KMP演算法的兩種實現方式

2021-09-05 20:11:11 字數 895 閱讀 9017

這兩個都是我做助教的那個班的兩個同學完成的,覺得她們做得不錯,故貼出來共享。

第乙個同學的實現:

#include

#include

#include

class string

//求長度

char & operator [ ] ( int  i )               //過載下標運算子

};string::string(char * s)

string::~string()

int * nature(string & p)

i++;

}while( p[ i ] == '*' )

m =  i;

}return n ;

}int kmp( string & target , string & pat , int * n , int startindex )

int n ,k = 0;                   //n和k 用來記錄開始匹配成功的位置

while( i < target.strlen() )

while( pat[j] == '*')

if( j == pat.strlen() )

;#include

#include

//#include

#include"string.h"

#include

string::string()

string::string(char* s)

//析構函式destructor

string::~string()

char* string:: replace(char a,char b)

if(  p.str[j]=='*')

*/cout<

C DLL匯出的兩種方式和鏈結的兩種方式

第一種 匯出方式 extern c declspec dllexport int plus int x,int y extern c declspec dllexport int sub int x,int y extern c declspec dllexport int mul int x,in...

實現Singleton的兩種方式

法一 公有靜態成員final域 public class elvis 優勢 api很容易知道這是乙個單例類,更簡單 注意 呼叫者可以借助accessbleobject.setaccssible方法通過反射機制呼叫私有構造器,因此如果想抵禦這種攻擊,可以修改構造器,讓它在被要求建第二個例項的時候丟擲異...

auto ptr的兩種實現方式

最開始auto ptr的成員變數主要有t ptr 和 bool owner,主要實現原理是在構造物件時賦予其管理空間的所有權,在拷貝或賦值中轉移空間的所有權,在析構函式中當 owner為true 擁有所有權 時來釋放所有權。template class my auto ptr templatemy ...