串 樸素匹配演算法

2021-10-11 16:13:42 字數 643 閱讀 2599

c語言極簡版

#include

#include

#include

/* 返回子串t在主串s中第pos個字元之後的位置。若不存在,則函式返回值為0。 */

intindex

(char s,

char t,

int pos)

else

/* 指標後退重新開始匹配 */}if

(j >1)

//j超出模式串的長度

return i-2;

//2為模式串的長度

else

return0;

}int

main()

優化版:在字串的首位填入字串的長度

/* 返回子串t在主串s中第pos個字元之後的位置。若不存在,則函式返回值為0。 */

intindex

(string s, string t,

int pos)

else

/* 指標後退重新開始匹配 */}if

(j > t[0]

)return i-t[0]

;else

return0;

}

kmp

樸素字串匹配演算法

include include include define maxsize 40 define ok 1 define error 0 using namespace std typedef char string maxsize 1 int string assign string m,char...

演算法 樸素字串匹配

模式匹配是資料結構中字串的一種基本運算,給定乙個子串,要求在某個字串中找出與該子串相同的所有子串,這就是模式匹配。假設p是給定的子串,t是待查詢的字串,要求從t中找出與p相同的所有子串,這個問題成為模式匹配問題。p稱為模式,t稱為目標。如果t中存在乙個或多個模式為p的子串,就給出該子串在t中的位置,...

樸素的字串匹配演算法

乙個字串是乙個定義在有限字母表 上的字串行。例如,abcdabc是字母表 上的乙個字串。字串匹配問題就是在乙個大的字串t中搜尋某個字串p的所有出現位置。其中,t稱為文字 或稱主串,模式串 p稱為模式 或稱子串 t和p都定義在同乙個字母表 上。設文字為長度為n,用字元陣列t 1.n 表示,模式串長度為...