資料結構 串 串的模式匹配 KMP演算法

2021-05-28 06:25:15 字數 733 閱讀 1960

"head.h"

#include#includeusing namespace std;

class string

;void string::getstring()

void string::getsubstring()

void string::kmp()

{ cout<<"kmp method called !"<

"main.cpp"

#include#include"head.h"

using namespace std;

int main()

{ string str;

char choice;

while(1)

{ cout<<"your choice please ?"<>choice;

switch(choice)

{ case '1':

str.getstring();

break;

case '2':

str.getsubstring();

break;

case '3':

str.kmp();

break;

case '4':

str.print();

break;

case '5':

return 0;

default:

cout<<"no such choice !"<

資料結構 模式匹配kmp演算法

暴力演算法 暴力演算法 intindex sstring s,sstring t,int pos else if j t 0 return i t 0 else return0 kmp演算法 next陣列的求法 例子 abaabcac 模式串的下標從1開始 第一位固定為0 第二位固定為1 從第三位 ...

資料結構 模式匹配 KMP演算法

模式匹配 在主串中找到與模式串相同的子串,並返回其位置 在討論kmp時,先來看看樸素模式匹配有什麼問題。樸素模式匹配的思路是把主串中與模式串長度相同的所有子串搞出來,挨個與模式串對比,有乙個字元不匹配時,立即放棄當前子串,轉而索引下乙個子串。在最壞的情況中,主串指標向前走m步,回退m 1步 前m 1...

資料結構 串的模式匹配 KMP演算法

目錄概念 簡述kmp演算法原理 計算next陣列 kmp演算法 測試 改進kmp演算法簡介 從s中匹配t串,在bf演算法中,通過指標回溯不斷進行匹配,其思想是窮舉。效率很低,但有些串有一定的規律,不需要回溯s串的指標,這就是kmp演算法。比如 s aaaaaab t aaab 在進行比較時,如果按照...