字串KMP小結

2021-07-11 04:09:34 字數 1815 閱讀 4313

一:返回模式串在主串的下標bf與kmp與kmp1

二:返回模式串在主串中出現的次數

如圖:

#include #include#includeusing namespace std;

#define maxsize 100

int next[maxsize];

int nextval[maxsize];

int n;

typedef struct

sqstring;

void assign(sqstring &s,char cstr)

int bf(sqstring s,sqstring t)

}return n;

}void getnext(sqstring t,int next)

}return n;

}void getnextval(sqstring t,int next)

}return n;

}int main()

三:最小迴圈節,即最大的迴圈次數

如圖:poj2406

len-next[len]是最小迴圈節,而len/(len-next[len])是最大的迴圈次數

#include #include#includeusing namespace std;

char t[1000000];

int next[1000000];

void getnext()

{ int i=0,j=-1;

next[0]=-1;

while(i字串的所有大小迴圈節以及他們的週期poj1961

如圖:

///i-next[i]是迴圈節的長度

void getnext(const char *t)///有無引數都行

#include #include#includeusing namespace std;

char t[1000000];

int next[1000000];

int len;

void getnext(const char *t)///無引數也行

{ int i=0,j=-1;

next[0]=-1;

while(i



字串小結

1.字串概念 字串是位於雙引號中的字串行 在記憶體中以 0 結束,所佔位元組比實際多乙個 2.字串的初始化 在c語言中沒有專門的字串變數,通常用乙個字元陣列來存放乙個字串。前面介紹字串常量時,已說明字串總是以 0 作為串的結束符。因此當把乙個字串存入乙個陣列時,也把結束符 0 存入陣列,並以此作為該...

字串小結

1 獲取字串的長度 strlen size t strlen const char str 功能 計算字串的有效長度,不包含0。返回值 返回字串的字元數 strlen 函式計算的是字串的實際長度,遇到第乙個0結束。函式返回值一定是size t,是無符號的整數,即typedef unsigned in...

字串小結

string的第乙個內容是hash。這個強有力的優化方式會給解題帶來巨大便利,很可惜的是我並沒有能參透。據我理解,hash實際上就是將待雜湊的資料根據某種規則重新對映的乙個過程,而這個過程往往會大大的降低資料的空間複雜度和訪問所需的時間複雜度。比如以下數列 12,23,34,45,50,我設定乙個雜...