BF樸素模式匹配算法 C++實現

BF樸素模式匹配算法 C++實現

BF樸素模式匹配算法

從主串與模式串的字符逐個匹配,失配則主串回溯到上一個起始比較字符的下一個字符,模式串回溯到第零個字符開始匹配

實現代碼

/*
author : eclipse
email  : [email protected]
time   : Tue Jun 16 22:05:02 2020
*/
#include <bits/stdc++.h>
using namespace std;

int bruteForce(string s, string t, int pos) {
    int i = pos, j = 0;
    while (i < s.size() && j < t.size()) {
        if (s[i] == t[j]) {
            i++;
            j++;
        } else {
            i = i - j + 1;
            j = 0;
        }
    }
    return j >= t.size() ? i - t.size() : 0;
}

int main(int argc, char const *argv[])
{
    string s, t;
    cin >> s >> t;
    printf("%d", bruteForce(s, t, 0));
    return 0;
}

輸入數據

indexbruteforcealgorithm
bruteforce

輸出結果

5

鳴謝

《王道考研數據結構》

最後

  • 由於博主水平有限,不免有疏漏之處,歡迎讀者隨時批評指正,以免造成不必要的誤解!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章