字串匹配演算法 Brute Force演算法

2022-05-30 02:27:07 字數 772 閱讀 2111

brute-force(暴力)演算法是字串匹配中最簡單也是最容易理解的演算法。

主要思想是 按順序遍歷母串,將每個字元作為匹配的起始字元,判斷是否匹配字串。若第乙個字元與字串匹配,則比較下乙個字元,否則回退到母串與字串比較的第乙個字元的下個字元,繼續比較。

brute-force演算法的時間複雜度為o(mn).

步驟如圖例所示:

(圖來自《資料結構》嚴蔚敏,吳偉民 p80)

我實現的乙個例子:

#include #include 

using

namespace

std;

intmain()

else

if(j ==pattern.size())

index =j;

else

index = -1

; }

cout

<< "

str:

"<< str <

cout

<< "

pattern:

"<< pattern <

cout

<< "

index:

"<< index <

}

執行結果:

字串匹配演算法 字串匹配演算法總覽

字串匹配在文字處理裡非常重要,我們採用簡潔的python 把以下演算法一一實現並講解。樸素演算法 algorithm rabin karp 演算法 有限自動機演算法 finite automation knuth morris pratt 演算法 kmp algorithm boyer moore ...

字串匹配演算法

首先引用一下另一篇文章中對字串匹配的介紹 字串匹配指的是從文字中找出給定字串 稱為模式 的乙個或所有出現的位置。本文的演算法一律輸出全部的匹配位 置。模式串在 中用x m 來表示,文字用y n 來,而所有字串都構造自乙個有限集的字母表 其大小為 根 據先給出模式還是先給出文字,字串匹配分為兩類方法 ...

字串匹配演算法

平常操作文字的時候,經常需要操作對字串進行操作。而字串中最重要的一種操作就叫匹配,字串的匹配演算法很多,人們最熟悉的莫過於kmp演算法了。今天就來談一談一些字串匹配演算法。先來說說大名鼎鼎的kmp演算法,這個演算法出現在無數的資料結構與演算法書上面。它的策略很簡單 當模式串第k個字元不匹配主串中第s...