有谁能告诉我有关斐波那契数字/文字表示的一些特殊属性。更具体地说,我感兴趣的是子词或单词或哪些索引部分或完全匹配。
例如
w0 = a
w1 = b
w2 = ba
w3 = **b**a**b** - 0 and 2nd index match for w3
w4 = **ba**b**ba** - here the first two and last two indexes match and so on.
换句话说,你知道斐波那契词的任何特殊模式匹配属性吗?或者如果你能在这个主题上知道一些很好的资料来源。
由于
答案 0 :(得分:0)
可用于它的东西称为“边界数组”,它是数组,在String的给定位置显示最长的前缀也是后缀。
Algorithm Border Array Construction
Output: Border array H for string w (stored in array of char "x").
1: H[1] ← 0
2: for i ← 1..(n − 1) do
3: b ← H[i]
4: while b > 0 and x[i + 1] != x[b + 1] do
5: b ← H[b]
6: end while
7: if x[i + 1] = x[b + 1] then
8: H[i + 1] ← b + 1
9: else
10: H[i + 1] ← 0
11: end if
12: end for
示例:
1 2 3 4 5 6 7 8 9
x a b a a b a b a ∗
H 0 0 1 1 2 3 2 3 ?