模式串 P = 'abaabcac'的 next 函数值序列为

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 07:51:43

模式串 P = 'abaabcac'的 next 函数值序列为
模式串 P = 'abaabcac'的 next 函数值序列为

模式串 P = 'abaabcac'的 next 函数值序列为
abaabcac
01122312
前两个字母next序列分别为01,直接写上
第三个"a" 时,它前一个字母为b,从头开始字母为a, a!=b所以为1
第四个"a" 时,前字母为a,从头开始字母为a,a=a,所以值为1+1=2(相等时为串长加1)
第五个"b",前个字母为a,从头开始a,a=a,为2
第六个"c",前个字母为b,再往前是a,ab,从头开始ab串,ab=ab,因此值为2+1=3
第七个字母为"a",前个字母为c,与从头开始的第一个字母不相等,所以为1
第八个为"c",前个字母为a,与开始第一个字母相等,因此为2

模式串P=‘abaabcac”的next函数值序列为 -1 0 0 1 1 2 0 1

abaabcac
-10-1102-11
前两个字母next序列分别为-1和0,直接写上
第三个"a"时,它与首字母相同且只隔一个字符,所以为-1
第四个"a"时,它与首字母相同且前一字母为a,与第一字母相同,所以值为1
第五个"b"时,前个字母为a,与第一字母相同,继续判断p[1]=b和p[4]=b相同,所以为0
第六个"c"时,前2个字母为ab,...

全部展开

abaabcac
-10-1102-11
前两个字母next序列分别为-1和0,直接写上
第三个"a"时,它与首字母相同且只隔一个字符,所以为-1
第四个"a"时,它与首字母相同且前一字母为a,与第一字母相同,所以值为1
第五个"b"时,前个字母为a,与第一字母相同,继续判断p[1]=b和p[4]=b相同,所以为0
第六个"c"时,前2个字母为ab,与第一和第二字母相同,继续判断p[2]=a和p[5]=c不相同,因此值为2
第七个"a""时,它与首字母相同且前面没有与头部相同的字符串,所以为-1
第八个"c"时,前个字母为a,与第一个字母相同,因此为1

收起