paper

Cartesian Tree Subsequence Matching

arXiv:2202.04349

Abstract

Park et al. [TCS 2020] observed that the similarity between two (numerical) strings can be captured by the Cartesian trees: The Cartesian tree of a string is a binary tree recursively constructed by picking up the smallest value of the string as the root of the tree. Two strings of equal length are said to Cartesian-tree match if their Cartesian trees are isomorphic. Park et al. [TCS 2020] introduced the following Cartesian tree substring matching (CTMStr) problem: Given a text string of length and a pattern string of length , find every consecutive substring of a text string such that and Cartesian-tree match. They showed how to solve this problem in time. In this paper, we introduce the Cartesian tree subsequence matching (CTMSeq) problem, that asks to find every minimal substring of such that contains a subsequence which Cartesian-tree matches . We prove that the CTMSeq problem can be solved efficiently, in time, where denotes the update/query time for dynamic predecessor queries. By using a suitable dynamic predecessor data structure, we obtain -time and -space solution for CTMSeq. This contrasts CTMSeq with closely related order-preserving subsequence matching (OPMSeq) which was shown to be NP-hard by Bose et al. [IPL 1998].