將主串中與模式串長度相同的子串搞出來,挨個與模式串對比
當子串與模式串某個對應字元不匹配時,就立即放棄當前子串,轉而檢索下乙個子串
若模式串長度為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...
簡單模式匹配演算法 串的模式匹配
一 對乙個串中的某子串的定位操作稱為串的模式匹配 二 模式串 待定位的子串 三 基本思想 從主串中的第乙個位置起和模式串的第乙個字元開始比較 如果相等,則繼續比較後續字元 如果不等,則從主串的第二個字元起,重新用上一步的方法與模式串中的字元作比較 以此類推,直到比較完模式串的所有字元,則匹配成功,返...