新手易懂的BF演算法進行串匹配(蠻力法 C C )

2021-08-19 18:17:03 字數 1207 閱讀 7446

應用蠻力法解決串匹配問題的過程是:從主串s的第乙個字元開始和子串t第乙個字元進行比較,若相等,則主串子串往後移乙個字元進行比較;若不相等,則從主串的第二個字元開始和子串的第乙個字元重新開始比較,重複上訴過程,若子串t中的字元全部比較完畢,則說明本趟匹配成功;否則不成功。這個演算法稱為樸素的模式匹配演算法,簡稱bf演算法。

設主串s="abcabcacb",子串t="abcac",bf演算法的匹配過程如圖所示。

偽**描述如下:

輸入:主串s,子串t

輸出:t在s中的位置

1.初始化主串比較的開始位置index=0;

2.在串s和串t中設定比較的起始座標i=0,j=0;

3.重複下述操作,直到s或t的所有字元均比較完畢:

3.1 如果s[i]=t[j],則繼續比較s和t的下一對字元

3.2 否則,下一趟匹配的開始位置index++,主串回溯下標i=index,子串回溯下標j=0;

4.如果t中所有字元均比較完了,則返回匹配的開始位置index;否則返回0;

c語言**如下所示:

#include int bf(char s,char t)

else

}if(t[j]=='\0') return index+1;

else return 0;

}int main()

c++**如下:

#include #include using namespace std;

int bf(string s,string t)

else

}if(t[j]=='\0') return index+1;

else return 0;

}int main()

{ string a;

cin>>a;

string b;

cin>>b;

cout<

串 BF演算法(匹配子串)

include include using namespace std define maxlen 255 bf演算法,匹配子串 typedef struct sstring string strassign sstring s,string e return ok int index bf sst...

BF演算法 串的模式匹配

bf演算法,即暴風 brute force 演算法,是普通的模式匹配演算法,bf演算法的思想就是將目標串s的第乙個字元與模式串t的第乙個字元進行匹配,若相等,則繼續比較s的第二個字元和 t的第二個字元 若不相等,則比較s的第二個字元和t的第乙個字元,依次比較下去,直到得出最後的匹配結果。bf演算法是...

BF演算法 串的模式匹配演算法

子串的定位運算通常稱為串的模式匹配或串匹配。串的模式匹配設有兩個字串s和t,設s為主串,也稱正文串 設t為子串,也稱模式。在主串s中查詢與模式t相匹配的子串,如果匹配成功,確定相匹配的子串中的第乙個字元在主串s 現的位置。著名的模式匹配演算法有bf演算法和kmp演算法,下面介紹bf演算法。模式匹配不...