好的后缀换班表

时间:2014-12-10 16:14:39

标签: algorithm shift

如何计算针的良好后缀? 我似乎无法理解下面这个答案.. 针是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 ??真????

1 个答案:

答案 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!同样的过程。

希望它有所帮助。