0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

前綴和真前綴的區(qū)別分析

算法與數(shù)據(jù)結(jié)構(gòu) ? 2017-12-22 13:51 ? 次閱讀

相信很多讀者都看過網(wǎng)上博客對(duì) KMP 算法的講解,其中必提及的一個(gè)名詞就是:前綴。那么請(qǐng)問你心中理解的前綴的定義是什么呢?

對(duì)于字符串 “china”,其前綴為:

china, chin, chi, ch, c

你的想法是不是和上面一樣呢。但是我很遺憾地告訴你,KMP 之前綴不是這樣的,它是這樣的:

chin, chi, ch, c

難道是我們記錯(cuò)前綴的概念了?不!不是我們記錯(cuò)了,只是有人在指鹿為馬而已。下面來揭曉真像吧。

如此看來,KMP 之前綴并非前綴,而是真前綴!而大多數(shù)(幾乎所有)的博客都在以 “真前綴” 去定義“前綴”。

next 數(shù)組是 KMP 的一個(gè)核心概念,而真前綴又是 next 數(shù)組的核心。算法本屬于一個(gè)很嚴(yán)謹(jǐn)?shù)念I(lǐng)域,這種在重要概念上卻還指鹿為馬的行為,是應(yīng)該需要我們注意和避免的。

不知道大家有沒有發(fā)現(xiàn),你所看過的 KMP 博文無一提及真前綴的定義,除了阮一峰的字符串匹配的 KMP 算法。

前綴和真前綴的區(qū)別分析

哈哈,阮老師太粗心了,在文章開頭阮老師已經(jīng)講過,他是閱讀了 Jake Boxer 的文章才明白 KMP 的,那原文是什么樣的呢?

前綴和真前綴的區(qū)別分析


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 前綴
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6382

原文標(biāo)題:你被欺騙了很久:前綴和真前綴

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    獲取帶有設(shè)備前綴終端名稱VI

    這是獲取帶有設(shè)備前綴終端名稱VI
    發(fā)表于 11-26 21:55

    16位并行前綴加法器

    問一個(gè)蠻簡(jiǎn)單的問題,在做并行前綴加法器總是出現(xiàn)這個(gè)問題,到底是什么鬼,,應(yīng)該怎樣解決?謝謝了!end后面是調(diào)用部分~
    發(fā)表于 10-28 15:52

    飛思卡爾單片機(jī)前綴表示什么意思

    初學(xué)飛思卡爾的單片機(jī),目前看到的有3個(gè)型號(hào):S9S12G640MLH、s9s12g64f1mlc、MC9S12XEP100MAG,這些前綴比如S、MC有什么區(qū)別嗎,在群里問過說是汽車級(jí)和工業(yè)級(jí)的區(qū)分
    發(fā)表于 05-25 17:15

    什么是9字符前綴?

    嗨!我要進(jìn)入?yún)R編語言領(lǐng)域。我決定從頭開始閱讀用戶指南,我現(xiàn)在在1.7.5.1“英特爾十六進(jìn)制格式”。兩張圖片附上。第一個(gè)是說明,第二個(gè)是例子。我不理解“每個(gè)數(shù)據(jù)記錄都以9個(gè)字符的前綴開始,以2個(gè)字符
    發(fā)表于 03-10 10:26

    allegro的CM里信號(hào)名稱前綴為什么會(huì)@原理圖名稱?

    allegro的CM里信號(hào)名稱前綴為什么會(huì)@原理圖名稱?
    發(fā)表于 06-18 16:33

    PADS Logic中如何去修改元件的參考前綴

      在logic中做元件庫(kù),都會(huì)給元器件定義位號(hào)的首字母,后面在繪制原理圖放置元器件時(shí),就會(huì)按這個(gè)來遞增編號(hào),常見的元器件位號(hào)首字母定義參考章節(jié)2.36,下面講解如何修改元件的參考前綴:   第一步
    發(fā)表于 04-28 17:10

    國(guó)外生產(chǎn)廠商型號(hào)前綴互聯(lián)網(wǎng)網(wǎng)址.pdf

    國(guó)外生產(chǎn)廠商型號(hào)前綴互聯(lián)網(wǎng)網(wǎng)址.pdf
    發(fā)表于 04-04 23:35 ?0次下載

    一種基于查詢前綴的快速抗沖突算法

    基于閱讀器發(fā)送的查詢前綴和電子標(biāo)簽的響應(yīng)后綴,提出一種新的射頻識(shí)別(RFID)標(biāo)簽識(shí)別算法,用以解決RFID仲裁過程中的零標(biāo)簽響應(yīng)問題。通過實(shí)驗(yàn)驗(yàn)證,與Memoryless抗沖突算法相比
    發(fā)表于 04-01 09:40 ?10次下載

    集成電路型號(hào)前綴與產(chǎn)地對(duì)照

    集成電路型號(hào)前綴與產(chǎn)地對(duì)照 AN 日本松下電器公司 BA 日本東洋電具制作所 BG 北京半導(dǎo)體器件三廠 BGD,BGJ 北京半導(dǎo)體器件研究所
    發(fā)表于 02-06 15:30 ?3045次閱讀

    基于循環(huán)前綴的同步算法及FPGA實(shí)現(xiàn)

    基于循環(huán)前綴的同步算法及FPGA實(shí)現(xiàn)   正交頻分復(fù)用(OrthogonalFrequency Division Multiplexing,OFDM)技術(shù)已經(jīng)成為第四代移動(dòng)通信研究的熱點(diǎn),同時(shí),OFDM同步又是OFDM的關(guān)鍵技
    發(fā)表于 03-23 09:27 ?1641次閱讀
    基于循環(huán)<b class='flag-5'>前綴</b>的同步算法及FPGA實(shí)現(xiàn)

    一種混合前綴編碼的測(cè)試數(shù)據(jù)壓縮方法

    一種混合前綴編碼的測(cè)試數(shù)據(jù)壓縮方法_談恩民
    發(fā)表于 01-07 20:49 ?0次下載

    修改ApiBoot Logging日志采集前綴的教程

    ApiBoot Logging支持指定單個(gè)或者多個(gè)路徑的前綴進(jìn)行采集,也就是我們可以指定/user/**或者/order/**下的單個(gè)或者同時(shí)指定多個(gè)路徑進(jìn)行...
    的頭像 發(fā)表于 12-10 22:20 ?402次閱讀

    基于畸形URL前綴的網(wǎng)絡(luò)攻擊激增6000%

    來自GreatHorn的研究人員報(bào)告說,他們已經(jīng)觀察到了犯罪分子通過構(gòu)造 “畸形的URL前綴 ”來逃避安全軟件的防護(hù),發(fā)送釣魚郵件進(jìn)行攻擊的次數(shù)增加了近6000%。除非你仔細(xì)觀察URL前綴中使用的符號(hào),要不然,它們看起來是非常合法的。
    的頭像 發(fā)表于 02-26 15:40 ?1684次閱讀

    國(guó)外生產(chǎn)廠商型號(hào)前綴互聯(lián)網(wǎng)網(wǎng)址.zip

    國(guó)外生產(chǎn)廠商型號(hào)前綴互聯(lián)網(wǎng)網(wǎng)址
    發(fā)表于 12-30 09:21 ?2次下載

    公共 IP 地址前綴如何進(jìn)行網(wǎng)絡(luò)資源配置?

    公共IP地址前綴是從各個(gè)區(qū)域的IP地址池中進(jìn)行分配的。通過指定名稱和恰當(dāng)?shù)?b class='flag-5'>前綴大小,我們能在特定的區(qū)域和訂閱中創(chuàng)建公共IP地址前綴。這里前綴的大小直接決定了可用的地址數(shù)量。 公共IP地
    的頭像 發(fā)表于 08-21 14:57 ?241次閱讀
    公共 IP 地址<b class='flag-5'>前綴</b>如何進(jìn)行網(wǎng)絡(luò)資源配置?