Let $T [1..n]$ be a text over an alphabet of size $\sigma \in \mathrm{polylog} (n)$, let $r^*$ be the sum of the numbers of runs in the Burrows-Wheeler Transforms of $T$ and its reverse, and let $z$ be the number of phrases in the LZ77 parse of $T$. We show how to store $T$ in $O (r^* \log (n / r^*) + z \log n)$ bits such that, given a pattern $P [1..m]$, we can report the locations of the $\mathrm{occ}$ occurrences of $P$ in $T$ in $O (m \log n + \mathrm{occ} \log^\epsilon n)$ time. We can also report the position of the leftmost and rightmost occurrences of $P$ in $T$ in the same space and $O (m \log^\epsilon n)$ time.
翻译:令 $T [1..n]$ 为定义在大小为 $\sigma \in \mathrm{polylog} (n)$ 的字母表上的文本,令 $r^*$ 为 $T$ 及其反转文本的 Burrows-Wheeler 变换中游程数之和,令 $z$ 为 $T$ 的 LZ77 解析中的短语数量。我们展示了如何以 $O (r^* \log (n / r^*) + z \log n)$ 比特的空间存储 $T$,使得给定模式 $P [1..m]$,我们能够在 $O (m \log n + \mathrm{occ} \log^\epsilon n)$ 时间内报告 $P$ 在 $T$ 中出现的 $\mathrm{occ}$ 个位置。我们还可以在相同的空间和 $O (m \log^\epsilon n)$ 时间内报告 $P$ 在 $T$ 中最左和最右出现的位置。
Alphabet is mostly a collection of companies. This newer Google is a bit slimmed down, with the companies that are pretty far afield of our main internet products contained in Alphabet instead.https://abc.xyz/