Let w be a string of length n. The problem of counting factors crossing a position - Problem 64 from the textbook “125 Problems in Text Algorithms” [Crochemore, Leqroc, and Rytter, 2021], asks to count the number \(\mathcal {C}(w,k)\) (resp. \(\mathcal {N}(w,k)\) ) of distinct substrings in w that have occurrences containing (resp. not containing) a position k in w. The solutions provided in their textbook compute \(\mathcal {C}(w,k)\) and \(\mathcal {N}(w,k)\) in O(n) time for a single position k in w, and thus a direct application would require \(O(n^2)\) time for all positions \(k = 1, \ldots , n\) in w. Their solution is designed for constant-size alphabets. In this paper, we present new algorithms which compute \(\mathcal {C}(w,k)\) in O(n) total time for general ordered alphabets, and \(\mathcal {N}(w,k)\) in O(n) total time for linearly sortable alphabets, for all positions \(k = 1, \ldots , n\) in w.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Counting Distinct (Non-)crossing Substrings

  • Haruki Umezaki,
  • Hiroki Shibata,
  • Dominik Köppl,
  • Yuto Nakashima,
  • Shunsuke Inenaga,
  • Hideo Bannai

摘要

Let w be a string of length n. The problem of counting factors crossing a position - Problem 64 from the textbook “125 Problems in Text Algorithms” [Crochemore, Leqroc, and Rytter, 2021], asks to count the number \(\mathcal {C}(w,k)\) (resp. \(\mathcal {N}(w,k)\) ) of distinct substrings in w that have occurrences containing (resp. not containing) a position k in w. The solutions provided in their textbook compute \(\mathcal {C}(w,k)\) and \(\mathcal {N}(w,k)\) in O(n) time for a single position k in w, and thus a direct application would require \(O(n^2)\) time for all positions \(k = 1, \ldots , n\) in w. Their solution is designed for constant-size alphabets. In this paper, we present new algorithms which compute \(\mathcal {C}(w,k)\) in O(n) total time for general ordered alphabets, and \(\mathcal {N}(w,k)\) in O(n) total time for linearly sortable alphabets, for all positions \(k = 1, \ldots , n\) in w.