樸素字串匹配演算法

2021-06-09 22:19:28 字數 455 閱讀 4790

#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 *chars)

else

}return ok;

}int index(string m,string n,int pos )

else

}if(j>n[0])

else

}int main()

{string t,s1,s2;

int k;

cout<<"please input first string:"<

演算法 樸素字串匹配

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

樸素的字串匹配演算法

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

樸素字串匹配與Karbin Karp演算法

字串的精度匹配就是在文字t中找出模式p的精確副本,並求出匹配的位置下標。即如果p 0.m 1 t k.k m 1 則稱p與t的子串行匹配成功。我們要找出所有匹配成功的k。樸素字串匹配方法很簡單。從文字t的第乙個字母和模式p的第乙個字母開始比較。如果不匹配,就從t的第二個字母開始匹配,依次類推,不保留...