串ababaaababaa的next数组为
答案:3 悬赏:30 手机版
解决时间 2021-03-21 10:27
- 提问者网友:别再叽里呱啦
- 2021-03-20 22:29
串ababaaababaa的next数组为
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-03-20 23:59
ababaa
全部回答
- 1楼网友:酒者煙囻
- 2021-03-21 00:59
0 0 2 0 3 1 1 0 3 0
- 2楼网友:老鼠爱大米
- 2021-03-21 00:14
计算字符串的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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯