Squares (fragments of the form $xx$, for some string $x$) are arguably the most natural type of repetition in strings. The basic algorithmic question concerning squares is to check if a given string of length $n$ is square-free, that is, does not contain a fragment of such form. Main and Lorentz [J. Algorithms 1984] designed an $\mathcal{O}(n\log n)$ time algorithm for this problem, and proved a matching lower bound assuming the so-called general alphabet, meaning that the algorithm is only allowed to check if two characters are equal. However, their lower bound also assumes that there are $\Omega(n)$ distinct symbols in the string. As an open question, they asked if there is a faster algorithm if one restricts the size of the alphabet. Crochemore [Theor. Comput. Sci. 1986] designed a linear-time algorithm for constant-size alphabets, and combined with more recent results his approach in fact implies such an algorithm for linearly-sortable alphabets. Very recently, Ellert and Fischer [ICALP 2021] significantly relaxed this assumption by designing a linear-time algorithm for general ordered alphabets, that is, assuming a linear order on the characters that permits constant time order comparisons. However, the open question of Main and Lorentz from 1984 remained unresolved for general (unordered) alphabets. In this paper, we show that testing square-freeness of a length-$n$ string over general alphabet of size $\sigma$ can be done with $\mathcal{O}(n\log \sigma)$ comparisons, and cannot be done with $o(n\log \sigma)$ comparisons. We complement this result with an $\mathcal{O}(n\log \sigma)$ time algorithm in the Word RAM model. Finally, we extend the algorithm to reporting all the runs (maximal repetitions) in the same complexity.
翻译:方块( 以xxx美元为单位, 以某种字符串为单位, 以xxxxxxxxxxxxxxxxxx) 可能是最自然的重复类型。 有关方块的基本算法问题在于检查给定的长度为$n美元, 也就是说, 不包含这种形式的碎片。 Main 和Lorentz [J. Algorithms 1984] 设计了一个 $\ mathcalcal{O} (n\log nn n) 的时间算法, 并证明假设所谓的普通正方位正方位, 也就是说, 只有在两个字符相等的情况下, 算法才允许检查。 然而, 它们的更低法问题在于检查字符串中是否有美元长度为美元, 也就是说, 当一个人限制字母大小时, orchemor [Theor. comput. Sci.] 设计了一个直线度算算算法, 和最近的结果是, 我们的直线式字母字母的算算算算算算法, 最近, 直线性算算算算算算算算算算算, 直数为美元。</s>
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/