KMP字串模式匹配

2022-06-21 04:48:08 字數 706 閱讀 8774

1.描述:指標i不回溯的字串模式匹配演算法

#include #include

using

namespace

std;/**

名稱:計算next陣列函式

描述:用於計算kmp模式匹配演算法的next陣列。該方法已得到修正,可以避免連續相同元素的問題

編寫人:李一帆

引數:patternstring 模式串

引數:nextarray next陣列

返回值:null**/

void getnextarray(char* patternstring,int*nextarray)

else

}}/*

*名稱:kmp模式匹配

描述:用於字串的模式匹配問題

編寫人:李一帆

引數:mainstring 主串

引數:patternstring 模式串

引數:nextarray next陣列

返回值:int -1:不匹配;其餘:子模式的首下標**/

int patternmathcingkmp(char* mainstring,char* patternstring,int*nextarray)

else

}if(j==strlen(patternstring))

else

}int

main()

字串模式匹配KMP演算法

next的值去改變每次匹配的位置 注意 字串的儲存最好用字元陣列,然後用字元輸入的形式,保證正確!利用求模式串的next值來分析遍歷,可以在不改變主串i的值的基礎上,只改變next j 的下標來遍歷 next j include include using namespace std void ge...

KMP字串模式匹配詳解

kmp字串模式匹配詳解 kmp字串模式匹配通俗點說就是一種在乙個字串中定位另乙個串的高效演算法。簡單匹配演算法的時間複雜度為o m n kmp匹配演算法。可以證明它的時間複雜度為o m n 一.簡單匹配演算法 先來看乙個簡單匹配演算法的函式 int index bf char s char t in...

字串模式匹配KMP演算法

字串模式匹配指的是,找出特定的模式串在乙個較長的字串中出現的位置。很直觀的可以寫出下面的 來找出模式串在乙個長字串中出現的位置。1 2 樸素的模式匹配演算法 3 功能 字串的模式匹配 4 引數 5 s 目標串 6 p 模式串 7 pos 開發匹配的位置 8 返回值 9 匹配成功,返回模式串在目標串的...