0

我无法理解以下内容:
我们有字符串ABRACADABRA。我们把这个分组作为例子: S分为组:S [3i] S [3i + 1] S [3i + 2]的含义

S0 = <S[3i]S[3i + 1]S[3i + 2] for i = 0,1,2...>其中<>表示的阵列和S [I]表示的位置iS的字符。

我期待那S0=<S[0]S[4]S[8]S[11]>但根据书中的“解决方案”我读它不是S0=[ABR][ACA][DAB][RA]这本质上是S[0]S[3]S[6]S[9]
那么我在公式S0 = <S[3i]S[3i + 1]S[3i + 2] for i = 0,1,2...>中读错了什么?

万一它很重要,它来自我阅读后缀数组的章节。我只在配方中遇到问题

回答

3

S0=[ABR][ACA][DAB][RA]不是S[0]S[3]S[6]S[9]S[0]S[3]S[6]S[9]将是AADR

这是发生了什么:

对于i=0
<S[3i]S[3i+1]S[3i+2]> = <S[3*0]S[3*0+1]S[3*0+2]> = <S[0]S[1]S[2]> = <ABR>

对于i=1
<S[3i]S[3i+1]S[3i+2]> = <S[3*1]S[3*1+1]S[3*1+2]> = <S[3]S[4]S[5]> = <ACA>

对于i=2
<S[3i]S[3i+1]S[3i+2]> = <S[3*2]S[3*2+1]S[3*2+2]> = <S[6]S[7]S[8]> = <DAB>

For i=3
<S[3i]S[3i+1]S[3i+2]> = <S[3*3]S[3*3+1]S[3*3+2]> = <S[9]S[10]S[11]> = <RA >

相关问题