<?xml version="1.0" encoding="UTF-8"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2026-08-25T18:47:27Z</responseDate>
  <request identifier="27194" metadataPrefix="oai_dc" verb="GetRecord">https://drops.dagstuhl.de/oai</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:drops-oai.dagstuhl.de:27194</identifier>
        <datestamp>2026-08-25T13:18:17Z</datestamp>
        <setSpec>ddc:004</setSpec>
        <setSpec>open_access</setSpec>
      </header>
      <metadata>
        <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:title>Nearly Optimal Internal Dictionary Matching</dc:title>
          <dc:creator>Chen, Jingbang</dc:creator>
          <dc:creator>Dai, Jiangqi</dc:creator>
          <dc:creator>Mang, Qiuyang</dc:creator>
          <dc:creator>Shi, Qingyu</dc:creator>
          <dc:creator>Xu, Tingqiang</dc:creator>
          <dc:subject>Internal dictionary matching</dc:subject>
          <dc:subject>pattern matching</dc:subject>
          <dc:subject>string algorithms</dc:subject>
          <dc:subject>data structures</dc:subject>
          <dc:subject>substring queries</dc:subject>
          <dc:description>We study the internal dictionary matching (IDM) problem where a dictionary 𝒟 containing d substrings of a text T over a linearly sortable alphabet is given, and each query concerns the occurrences of patterns in 𝒟 in another substring of T. We propose a novel O(n)-sized data structure named Basic Substring Structure (BASS) where n is the length of the text T. With BASS, we are able to handle all types of queries in the IDM problem in nearly optimal query and preprocessing time. Specifically, our results include:  &#13;
- The first algorithm that answers the CountDistinct query in Õ(1) time with Õ(n+d) preprocessing, where we need to compute the number of distinct patterns that exist in T[l,r]. Previously, the best result was Õ(m) time per query after Õ(n²/m+d) or Õ(nd/m+d) preprocessing, where m is a chosen parameter. &#13;
- Faster algorithms for two other types of internal queries. We improve the runtime for (1) Occurrence counting (Count) queries to O(log n/log log n) time per query with O(n+d√{log n}) preprocessing from O(log² n/log log n) time per query with O(nlog n/log log n + d log^{3/2} n) preprocessing. (2) Distinct pattern reporting (ReportDistinct) queries to O(1+|output|) time per query from O(log n+|output|) per query. &#13;
In addition, we match the optimal runtime in the remaining two types of queries, pattern existence (Exists), and occurrence reporting (Report). We also show that BASS is more generally applicable to other internal query problems.</dc:description>
          <dc:publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</dc:publisher>
          <dc:contributor>Jingbang Chen and Jiangqi Dai and Qiuyang Mang and Qingyu Shi and Tingqiang Xu</dc:contributor>
          <dc:date>2026</dc:date>
          <dc:relation>Is Part Of LIPIcs, Volume 388, 34th Annual European Symposium on Algorithms (ESA 2026)</dc:relation>
          <dc:type>InProceedings</dc:type>
          <dc:type>Text</dc:type>
          <dc:type>doc-type:ResearchArticle</dc:type>
          <dc:type>publishedVersion</dc:type>
          <dc:format>application/pdf</dc:format>
          <dc:identifier>doi:10.4230/LIPIcs.ESA.2026.58</dc:identifier>
          <dc:identifier>urn:nbn:de:0030-drops-271944</dc:identifier>
          <dc:identifier>https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ESA.2026.58</dc:identifier>
          <dc:language>eng</dc:language>
          <dc:rights>https://creativecommons.org/licenses/by/4.0/legalcode</dc:rights>
        </oai_dc:dc>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
