In this article, Maxime Crochemore, Costas S Iliopoulos, Marcin Kubica, Jakub Radoszewski, Wojciech Rytter, and Tomasz Waleń explore the problem of extracting powers and periods in a word from its run structure. The authors present a new algorithm that can efficiently solve this problem in O(log n/log log n) time, where n is the length of the word. This result improves upon previous algorithms that had a time complexity of O(n^2).
To understand how the algorithm works, it helps to think of the run structure of a word as a tree-like structure, where each level represents a period in the word. The powers of the periods are like branches on this tree, and the algorithm needs to count the number of times each branch appears in the tree.
The authors’ algorithm works by first preprocessing the input word to reduce its size, and then using a combination of techniques such as 2D-dominance range counting queries and linear time construction of a data structure to solve the problem. The key insight behind their approach is that the powers of the periods in the run structure can be represented using a subset of the original data structure, which makes the algorithm faster and more efficient.
Overall, this article provides a significant improvement in the time complexity of solving the problem of extracting powers and periods in a word from its run structure. The authors’ approach demonstrates how creative problem-solving can lead to breakthroughs in computer science, and their work has important implications for applications such as text indexing and compression.
Computer Science, Data Structures and Algorithms