New algorithms for text fingerprinting

https://doi.org/10.1016/j.jda.2007.05.001Get rights and content
Under an Elsevier user license
open archive

Abstract

Let s=s1..sn be a text (or sequence) on a finite alphabet Σ. A fingerprint in s is the set of distinct characters contained in one of its substrings. Fingerprinting a text consists of computing the set F of all fingerprints of all its substrings and being able to efficiently answer several questions on this set. A given fingerprint fF is represented by a binary array, F, of size |Σ| named a fingerprint table. A fingerprint, fF, admits a number of maximal locations i,j in S, that is the alphabet of si..sj is f and si1,sj+1, if defined, are not in f. The set of maximal locations is L,|L|n|Σ|. We present new algorithms and a new data structure for the three problems: (1) compute F; (2) given F, answer if F represents a fingerprint in F; (3) given F, find all maximal locations of F in s. These problems are, respectively, solved in O(n+|L|log|Σ|), Θ(|Σ|), and Θ(|Σ|+K) time—where K is the number of maximal locations of F.

Keywords

Text fingerprinting
Character set
Text algorithm
Maximal location
Naming

Cited by (0)

1

This work is supported by the Russian Foundation for Fundamental Research (Grant 05-01-00994) and the program of the President of the Russian Federation for supporting of young researchers (Grant MD-3635.2005.1).