字串查詢之暴力匹配法

2021-08-22 16:25:59 字數 611 閱讀 7024

問題描述:在長度為m的字串source中,尋找長度為n的字串target。如果source字串中存在target字串,則返回字串target第一次在字串source中出現的位置;如果不存在,則返回-1。

乙個最樸素的想法是使用暴力匹配法:將source中的字元與target中的字元逐一比較,如果source的當前字元與target的首字元相等,則繼續比較它們的下一字元,直到出現了不等的字元或遍歷了target所有字元。如果出現了不等的字元,則繼續比較source的下乙個和target的首字元,並重複上述過程。如果target的所有字元都被遍歷了,則說明source字串和target字串相等。暴力匹配法的主要缺點是時間複雜度太高,需要o(n•m)時間。**如下:

class solution 

if (strlen(source) < strlen(target))

if (strlen(target) == 0)

for (int i = 0; i < strlen(source) - strlen(target) + 1; i++)

}if (j == strlen(target))

}return -1;

}};

字串匹配暴力匹配法和KMP匹配演算法對比

暴力匹配演算法和 kmp 演算法比較 演算法實現 include include include 使用fstream 中定義的類及 各種成員函式 include include include 時間函式 using namespace std 開闢記憶體空間 int strstr char hays...

字串暴力匹配演算法

暴力匹配演算法 如果用暴力匹配的思路,並假設現在 str1 匹配到 i位置,子串 str2 匹配到 j 位置,則有 1 如果當前字元匹配成功 即 str1 i str2 j 則i j 繼續匹配下乙個字元 2 如果失配 即 str1 i str2 j 令i i j 1 j 0 相當於每次匹配失敗時,i...

字串匹配暴力演算法

include define maxsize 100 typedef struct sqstring void strassign sqstring s,char cstr 初始化串 s.length i void destroystr sqstring s 釋放串 void strcopy sqs...