字符串匹配算法

1.樸素算法
2.RK算法
3.kmp算法
詳細(xì)講解:
主要在于搜索字符串相對(duì)原字符串需要后移多少位.對(duì)比字符串與搜索字符串的第一個(gè)字符,若不相同,則講搜索字符串向后移一位.若相同則對(duì)比兩者的第二個(gè)字符串.當(dāng)移動(dòng)到第n個(gè)字符時(shí),發(fā)現(xiàn)不相同,這是需要就算出部分匹配表,目的在于決定將搜索字符串后移多少位,若還是按老規(guī)矩只向后移一位,其實(shí)是效率低下的一種做法.因?yàn)榇藭r(shí)已經(jīng)知道前n-1個(gè)字符是什么了.
至于如何計(jì)算部分匹配表,與字符串前綴 后綴有關(guān)系.前綴和后綴字符串最長(zhǎng)的共同的字符個(gè)數(shù)就是該字符的部分匹配值.


kmp.png

4.BM算法
5.Sunday算法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、BF算法 假設(shè)現(xiàn)有一字符串,“BBC ABCDAB ABCDABCDABDE”將其稱為給定串,相應(yīng)有一匹配串“...
    橙小汁閱讀 758評(píng)論 5 13
  • 兩個(gè)字符串A、B,在A字符串中查找B字符串(分別長(zhǎng)為m,n),如果找到了,返回B字符串在A字符串中第一次出現(xiàn)的下標(biāo)...
    Myth52125閱讀 289評(píng)論 0 0
  • 字符串匹配算法之Sunday算法 背景 我們第一次接觸字符串匹配,想到的肯定是直接用2個(gè)循環(huán)來遍歷,這樣代碼雖然簡(jiǎn)...
    houskii閱讀 10,152評(píng)論 10 25
  • 1 全棧工程師是很多公司高薪聘請(qǐng), 卻找不到的人才。 2 全棧工程師有多年IT從業(yè)的經(jīng)驗(yàn), 對(duì)各個(gè)技術(shù)領(lǐng)域的知識(shí)都...
    Eric蘇離閱讀 457評(píng)論 0 0
  • GCD編程的核心就是dispatch隊(duì)列,dispatch block的執(zhí)行最終都會(huì)放進(jìn)某個(gè)隊(duì)列中去進(jìn)行,它類似N...
    VincentHK閱讀 409評(píng)論 0 0

友情鏈接更多精彩內(nèi)容