如何计算针的良好后缀? 我似乎无法理解下面这个答案.. 针是skjeskj
goodshift[0] : !j 1
goodshift[1] : !kj 7
goodshift[2] : !skj 7
goodshift[3] : !eskj 4
goodshift[4] : !jeskj 4
goodshift[5] : !kjeskj 4
goodshift[6] : !skjeskj 4
有人能解释一下吗?
编辑:downvotes?真的,stackoverflow ??真????
答案 0 :(得分:0)
第一个字符总是1!请注意
skjeskj(长度= 7)
j =跳1;
(k)j = 7!我们在这里查看,字符串中没有k的j是什么?不,然后我们跳7.(针的长度)
(s)kj = 7!我们在这里查看,字符串中没有s的是kj吗?不,然后我们跳7.。
(e)skj = 4!我们在这里查看,是没有e的字符串中的skj?是的,然后我们从右到左计数。 Ĵ(1)中,k(2),S(3),E(4)。比我们找到没有e的子串skj。
(j)eskj = 4!相同的过程,但这里的字符串以skj开头,而所有子字符串都包含skj,必须跳过4个索引。
(k)jeskj = 4!同样的过程。
(s)kjeskj = 4!同样的过程。
希望它有所帮助。