資料結構與演算法 字串匹配 BF演算法

2021-09-27 10:30:44 字數 1024 閱讀 3995

又稱暴力匹配演算法,是一種樸素的模式匹配演算法

給定主串 s : bilibili 和子串 t :bilididi

1. 主串 s 第一位開始與子串 t 第一位匹配,b 與 l 不匹配, 匹配失敗

2. 主串 s 第二位開始與子串 t 第一位匹配, i 與 l 不匹配,匹配失敗

3. 主串 s 第三位開始與子串 t 第一位匹配,s 與 t 四個字母全部匹配,匹配成功

總的來說就是,從主串的第乙個字母開始與子串匹配,匹配不成功,子串就向後移動乙個單位,然後與主串的第二個字母開始匹配,以此類推直到全部匹配成功

當匹配不成的時候,要將 i 進行回溯,  i = i - j + 1

將 i 回溯到下乙個位置

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

*//*

確定子串t 在 主串s 第一次出現的位置

*//*

t為非空, 1<= pos <= s.length()

*//*

pos: 比較的起始位置

*/int strcompare_bf(string s, string t, int pos = 0

)

else

}if (j >=lent)

else

}

字元字串模式匹配演算法 BF演算法與KMP演算法

需解決的問題 從主字串s中尋找子字串t出現的第乙個位置?如果出現,返回pos,否則,返回 1 一 bf演算法 bf演算法就是樸素模式匹配演算法,即暴力求解,迴圈遍歷。將子字串的每個字元和主字串的字元按順序比較,如果比較不相等時,兩個字串的索引i和j同時回退,i回退到剛才主字串起始位置的下一位,子字串...

字串匹配演算法 BF

brute force演算法,簡稱bf演算法,是一種簡單樸素的模式匹配演算法,常用語在乙個主串string內查詢乙個子串 pattern的出現位置。核心思想 i遍歷主串string i 每自增一次,內層迴圈用j遍歷子串pattern,同時判斷patter j string i j 若條件成立,j 自...

資料結構 字串(BF演算法 KMP演算法)

串的定義 串 string 是計算機資訊處理中最常見的一種資料結構,是有限的字串行,記作 s a1a2a3 an 其中s是串名,雙引號之間的字串行為串的值,雙引號是串的分界符,並不是串的成分。其中 ai 1 i空串 空格串和子串 空串 由零個字元組成的串,通常為兩個相鄰的雙引號來表示空串,例如 s ...