日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

手算KMP匹配的Next值和Nextval值(转载)

發(fā)布時(shí)間:2024/4/14 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手算KMP匹配的Next值和Nextval值(转载) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

KMP 算法我們有寫好的函數(shù)幫我們計(jì)算 Next 數(shù)組的值和 Nextval 數(shù)組的值,但是如果是考試,那就只能自己來手算這兩個(gè)數(shù)組了,這里分享一下我的計(jì)算方法吧。

計(jì)算前綴 Next[i] 的值:

我們令 next[0] = -1 。從 next[1] 開始,每求一個(gè)字符的 next 值,就看它前面是否有一個(gè)最長(zhǎng)的"字符串"和從第一個(gè)字符開始的"字符串"相等(需要注意的是,這2個(gè)"字符串"不能是同一個(gè)"字符串")。如果一個(gè)都沒有,這個(gè)字符的 next 值就是0;如果有,就看它有多長(zhǎng),這個(gè)字符的 next 值就是它的長(zhǎng)度。

計(jì)算修正后的 Nextval[i] 值:

我們令 nextval[0] = -1。從 nextval[1] 開始,如果某位(字符)與它 next 值指向的位(字符)相同,則該位的 nextval 值就是指向位的 nextval 值(nextval[i] = nextval[ next[i] ]);如果不同,則該位的 nextval 值就是它自己的 next 值(nextvalue[i] = next[i])。

舉個(gè)例子:

計(jì)算前綴 Next[i] 的值:

next[0] = -1;定值。
next[1] = 0;s[1]前面沒有重復(fù)子串。
next[2] = 0;s[2]前面沒有重復(fù)子串。
next[3] = 0;s[3]前面沒有重復(fù)子串。
next[4] = 1;s[4]前面有重復(fù)子串s[0] = 'a'和s[3] = 'a'。
next[5] = 2;s[5]前面有重復(fù)子串s[01] = 'ab'和s[34] = 'ab'。
next[6] = 3;s[6]前面有重復(fù)子串s[012] = 'abc'和s[345] = 'abc'。
next[7] = 4;s[7]前面有重復(fù)子串s[0123] = 'abca'和s[3456] = 'abca'。

計(jì)算修正后的 Nextval[i] 值:

nextval[0] = -1;定值。
nextval[1] = 0;s[1] != s[0],nextval[1] = next[1] = 0。
nextval[2] = 0;s[2] != s[0],nextval[2] = next[2] = 0。
nextval[3] = -1;s[3] == s[0],nextval[3] = nextval[0] = -1。
nextval[4] = 0;s[4] == s[1],nextval[4] = nextval[1] = 0。
nextval[5] = 0;s[5] == s[2],nextval[5] = nextval[2] = 0。
nextval[6] = -1;s[6] == s[3],nextval[6] = nextval[3] = -1。
nextval[7] = 4;s[7] != s[4],nextval[7] = next[7] = 4。

?

作者:姜南(Slyar)?轉(zhuǎn)載地址:Slyar Home (www.slyar.com)

轉(zhuǎn)載于:https://www.cnblogs.com/Luquan/p/10744234.html

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的手算KMP匹配的Next值和Nextval值(转载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。