字串樸素模式匹配演算法 簡單模式匹配演算法

2021-10-08 22:59:43 字數 551 閱讀 2585

將主串中與模式串長度相同的子串搞出來,挨個與模式串對比

當子串與模式串某個對應字元不匹配時,就立即放棄當前子串,轉而檢索下乙個子串

若模式串長度為m,主串長度為n,則直到匹配成功/匹配失敗最多需要(n-m+1)*m次比較

最壞時間複雜度: o(nm)

最壞情況:每個子串的前m-1個字元都和模式串匹配,只有第m個字元不匹配

比較好的情況:每個子串的第1個字元就與模式串不匹配

方案一:

//方案① 

intindex

(string s,string t)

else}if

(j>t.length)

else

return0;

}

方案二:

//方案② 

intindex

(string s,string t)

else}if

(j>t.length)

else

return0;

}

單模式字串匹配演算法KMP

kmp演算法 2int kmp char s,file file,int pos 3 else 否則,下標指向當前字元的前乙個匹配項 12i next i 13if i 1 17 18 if s i 0 else 否則返回 1 22 return 1 23 獲得模式串的next陣列演算法 演算法中c...

字串之簡單模式匹配演算法(BF)

演算法設計思想 將主串s的第pos個字元和模式t的第1個字元比較,若相等,繼續逐個比較後續字元 若不等,從主串s的下一字元 pos 1 起,重新與t第乙個字元比較。直到主串s的乙個連續子串字串行與模式t相等。返回值為s中與t匹配的子串行第乙個字元的序號,即匹配成功。否則,匹配失敗,返回值 0 inc...

簡單模式匹配演算法 串的模式匹配

一 對乙個串中的某子串的定位操作稱為串的模式匹配 二 模式串 待定位的子串 三 基本思想 從主串中的第乙個位置起和模式串的第乙個字元開始比較 如果相等,則繼續比較後續字元 如果不等,則從主串的第二個字元起,重新用上一步的方法與模式串中的字元作比較 以此類推,直到比較完模式串的所有字元,則匹配成功,返...