Before revision:  We then present an algorithm that spends q \in O(\sigma g\log n) \subseteq O(\sigma z_{no}\log (n/z_{no})\log n) substring queries and runs in O(n(\log n + \log \sigma)+ q) time using linear space . This algorithm actually reconstructs the suffix tree of the string using a dynamic approach based on the centroid decomposition .
After revision:  We then present an algorithm that spends q \in O(\sigma g\log n) \subseteq O(\sigma z_{no}\log (n/z_{no})\log n) substring queries and runs in O(n(\log n + \log \sigma)+ q) time using linear space .