  Bille and G{\o}rtz (2011) recently introduced the problem of substring range
counting, for which we are asked to store compactly a string $S$ of $n$
characters with integer labels in ([0, u]), such that later, given an interval
([a, b]) and a pattern $P$ of length $m$, we can quickly count the occurrences
of $P$ whose first characters' labels are in ([a, b]). They showed how to store
$S$ in $\Oh{n \log n / \log \log n}$ space and answer queries in $\Oh{m + \log
\log u}$ time. We show that, if $S$ is over an alphabet of size (\polylog (n)),
then we can achieve optimal linear space. Moreover, if (u = n \polylog (n)),
then we can also reduce the time to $\Oh{m}$. Our results give linear space and
time bounds for position-restricted substring counting and the counting
versions of indexing substrings with intervals, indexing substrings with gaps
and aligned pattern matching.

Data Structures and Algorithms