next數(shù)組通俗求法 如何求字符串next數(shù)組值?
如何求字符串next數(shù)組值?例如:123 4 5 6 7 8模式字符串a(chǎn) B a B C a C next value 0 1 2 2 3 1 2 next array求解方法是:第一位的next v
如何求字符串next數(shù)組值?
例如:123 4 5 6 7 8模式字符串a(chǎn) B a B C a C next value 0 1 2 2 3 1 2 next array求解方法是:第一位的next value為0,第二位的next value為1,以后求解每個位的next value時,根據(jù)上一位進行比較。首先,比較上一位與其下一個值對應(yīng)的內(nèi)容。如果相等,則該位的下一個值為上一位的下一個值加1;如果不相等,則繼續(xù)查找下一個值對應(yīng)的內(nèi)容與上一位進行比較,直到發(fā)現(xiàn)該位內(nèi)容的下一個值對應(yīng)的內(nèi)容與上一位相等,則對應(yīng)于位加1的值是請求的下一個值如果找到第一個位但沒有找到與前一個位相等的內(nèi)容,則請求位上的下一個值是1。有幾種方法,我現(xiàn)在只懂這一種。另一個是以-1開頭的第一個。
數(shù)據(jù)結(jié)構(gòu)模式匹配求next值?
我寫了一篇關(guān)于如何計算字符串next和nextval的文章,比較簡單生動,適合初學(xué)者
查找字符串next數(shù)組值:known string STR=“aaab”,下一個數(shù)組值是0123。已知字符串STR=“babab”,其下一個數(shù)組值為01123。計算過程:計算3B(3B用坐標(biāo)3表示B):首先比較3B的前一位2a,2a的下一個值為1,然后將2a與坐標(biāo)1的字符串1b進行比較,后者不相等。因為1b是第一位,3b的下一個值是1。計算4A:首先比較4A的第一位3b,3b的下一個值是1,然后將3b與坐標(biāo)為1的字符串1b進行比較,這樣4A的下一個值是(3b1的下一個值)=2。計算5B:與計算4a類似,結(jié)果為21=3。