已知串S aaab ,其Next陣列值為

時間 2022-03-15 16:30:06

1樓:

答案a序號:1 2 3 4

陣列:a a a b

next: 0 1 2 3

注意上邊序號、陣列和next的對應關係

求next值的過程:

前兩位:next陣列值前兩位一定為01,即aaab中的前兩位aa對應01,如上表中next第1,2位為0和1.其實這就可以選出答案了.

第三位:3a前面是2a(2a表示序號為2的a),2a的next陣列值為1,找到序號為1的字元, 即1a,將2a和1a相比,兩者相同,都是a,則3a的next值為2a的next值加1,即2;

第四位:4b前3a的next為2,找到序號為2的字元, 即2a, 將3a與2a相比,二者相同,則其next值為3a的next加1,為3.

結果為0123,選a

如果比較的時候碰到與前一位字元「不同」怎麼辦?如求下列序號4的next值

序號: 1 2 3 4

陣列: a a b a

next: 0 1 2 1

以前一位的next值為序號,找到這個序號對應的字元,再進行比較,4a前一位是3b, next值為2, 找到序號2對應的2a, 比較3b和2a, 兩者不同, 再重複這一步驟, 找到2a的next值是1,比較3b和1a, 不同, 那麼所求的4a的next就是1, 如果相同就是2a的next值加1,為2。

做個練習:xyxyyxxyx,求它的next陣列?

答案是011231223,你做對了嗎?

2樓:牟博容

正確答案:a

next陣列的求解方法是:第一位的next值為0,第二位的next值為1,後面求解每一位的next值時,根據前一位進行比較。

首先將前一位與其next值對應的內容進行比較,如果相等,則該位的next值就是前一位的next值加上1;

如果不等,向前繼續尋找next值對應的內容來與前一位進行比較,直到找到某個位上內容的next值對應的內容與前一位相等為止,則這個位對應的值加上1即為需求的next值;

如果找到第一位都沒有找到與前一位相等的內容,那麼需求的位上的next值即為1

3樓:匿名使用者

4.已知串s=『aaab』,其next陣列值為( d )。【西安電子科技大學 1996 一、7 (2分)】

a.0123 b.1123 c.1231 d.1211

4樓:w依然愛

這題選a 。樓下的解答錯誤

串"ababaaababaa"的next陣列為( ). 求解釋,本題選c

5樓:油條大巴

計算字串的next函式值,可以參考"kmp模式匹配演算法".

計算過程:

下標j   1  2  3  4  5  6  7  8  9  10  11  12

字串  a  b  a  b  a  a  a  b  a   b   a   a

next[j] 0  1  1  2  3  4  2  2  3   4   5   6

1) 當j=1時,固定就是next[1]=0;

2) 當j=2時,由1到j-1的字串是"a",屬於其他情況,固定就是next[2]=1;

3) 當j=3時,由1到j-1的字串是"ab",字首字元"a"與字尾字元"b"不相等,

屬於其他情況,所以,next[3]=1;

4) 當j=4時,由1到j-1的字串是"aba",字首字元"a"與字尾字元"a"相等,

也就是有1個字元相等,所以,next[4]=1+1=2;

5) 當j=5時,由1到j-1的字串是"abab",字首字元"ab"與字尾字元"ab"相等,

也就是有2個字元相等,所以,next[5]=2+1=3;

6) 當j=6時,由1到j-1的字串是"ababa",字首字元"aba"與字尾字元"aba"相等,

也就是有3個字元相等,所以,next[6]=3+1=4;

7) 當j=7時,由1到j-1的字串是"ababaa",字首字元"a"與字尾字元"a"相等,

也就是有1個字元相等,所以,next[7]=1+1=2;

8) 當j=8時,由1到j-1的字串是"ababaaa",字首字元"a"與字尾字元"a"相等,

也就是有1個字元相等,所以,next[8]=1+1=2;

9) 當j=9時,由1到j-1的字串是"ababaaab",字首字元"ab"與字尾字元"ab"相等,

也就是有2個字元相等,所以,next[9]=2+1=3;

10)當j=10時,由1到j-1的字串是"ababaaaba",字首字元"aba"與字尾字元"aba"相等,

也就是有3個字元相等,所以,next[10]=3+1=4;

11)當j=11時,由1到j-1的字串是"ababaaabab",字首字元"abab"與字尾字元"abab"相等,

也就是有4個字元相等,所以,next[11]=4+1=5;

12)當j=12時,由1到j-1的字串是"ababaaababa",字首字元"ababa"與字尾字元"ababa"相等,

也就是有5個字元相等,所以,next[12]=5+1=6;

所以,答案選 c.011234223456

資料結構題:串'ababaaababaa'的next陣列為()

6樓:匿名使用者

最好是您記得next陣列的演算法,這樣您就可以依據演算法思想推出來,如果不行說個較簡單的方法。

即當前位置上的next值即等於其前緊鄰的與起始位置開始匹配的最長序列長度(本例需要+1,因為序列的起始位置從1開始而不是從0開始,判斷依據是因為起始位置a的next取值為0,因此說明0位置不用於儲存序列中的元素)。

例如,ababaaababaa中,第二個b的取值為2,因為其前與起始位置開始匹配的最長序列為「a」長度為1(1+1 = 2)。

例如,第三個a的取值為3,因為其前與起始位置開始匹配的最長序列為「ab」,長度為2(2 + 1 = 3)

已知函式f(x)Asin(wx fai),x屬於R(其中A0,w0,0fai2)的影象與x軸的交

尋情記丶 1 由與x軸焦點間距為 2 可知週期t 即2 w 得w 2 根據最低點知 最小值為 2 即a 2 a 0 還有sin 2x fai 在x 2 3時取最小值 1即 2 2 3 fai 2k 3 2 k為整數 又由fai的範圍可得fai 6 所以f x 2sin 2x 6 2 x屬於 12,2...

高手進已知函式f x x a 2 x,g x x Inx,其中a0 1 若x 1若x 1是函式h x f x g x 的極值點

1 由已知得 h 1 0 h x f x g x 1 a x 1 1 x 2 a x 1 x h 1 2 a 1 3 a 0 又a 0 a 3 2 若對任意的x1,x2 1,e 都有f x1 g x2 成立,則 f x min g x max 當x 1,e 時,g x 1 1 x 0 函式g x x...

已知函式f x2ax a 2 1x 2 1 ,其

1 a 1時,f x 2x x 1 f x 2 1 x x 1 f 0 2 在 0,0 處的切線為y 2x 2 f x 2a x 1 2ax a 1 2x x 1 2 ax a 1 x a x 1 2 ax 1 x a x 1 討論a當a 0時,f x 2x x 1 單調增區間為 0,單調減區間為 ...