Abstract
We propose a new linear-size data structure which provides a fast access to all palindromic substrings of a string or a set of strings. This structure inherits some ideas from the construction of both the suffix trie and suffix tree. Using this structure, we present simple and efficient solutions for a number of problems involving palindromes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
This structure can be found, with the reference to the first author, in a few IT blogs under the name “palindromic tree”. See, e.g., http://adilet.org/blog/25-09-14/.
References
Driscoll, J.R., Sarnak, N., Sleator, D.D., Tarjan, R.E.: Making data structures persistent. J. Comput. Syst. Sci. 38(1), 86–124 (1989)
Droubay, X., Justin, J., Pirillo, G.: Episturmian words and some constructions of de Luca and Rauzy. Theor. Comput. Sci. 255, 539–553 (2001)
Fici, G., Gagie, T., Kärkkäinen, J., Kempa, D.: A subquadratic algorithm for minimum palindromic factorization. J. Discrete Algorithms 28, 41–48 (2014)
Galil, Z., Seiferas, J.: A linear-time on-line recognition algorithm for “Palstar”. J. ACM 25, 102–111 (1978)
Glen, A., Justin, J., Widmer, S., Zamboni, L.: Palindromic richness. Eur. J. Comb. 30(2), 510–531 (2009)
Groult, R., Prieur, E., Richomme, G.: Counting distinct palindromes in a word in linear time. Inf. Process. Lett. 110, 908–912 (2010)
Gusfield, D.: Algorithms on Strings, Trees and Sequences. Computer Science and Computational Biology. Cambridge University Press, Cambridge (1997)
Kari, L., Mahalingam, K.: Watson—Crick palindromes in DNA computing. Nat. Comput. 9, 297–316 (2010)
Knuth, D.E., Morris, J., Pratt, V.: Fast pattern matching in strings. SIAM J. Comput. 6, 323–350 (1977)
Kosolobov, D., Rubinchik, M., Shur, A.M.: Finding distinct subpalindromes online. In: Proceedings of the Prague Stringology Conference, PSC 2013, pp. 63–69. Czech Technical University, Prague (2013)
Kosolobov, D., Rubinchik, M., Shur, A.M.: Pal\(^{k}\) is linear recognizable online. In: Italiano, G.F., Margaria-Steffen, T., Pokorný, J., Quisquater, J.-J., Wattenhofer, R. (eds.) SOFSEM 2015-Testing. LNCS, vol. 8939, pp. 289–301. Springer, Heidelberg (2015)
Manacher, G.: A new linear-time on-line algorithm finding the smallest initial palindrome of a string. J. ACM 22(3), 346–351 (1975)
Mauri, G., Pavesi, G.: Algorithms for pattern matching and discovery in RNA secondary structure. Theor. Comput. Sci. 335, 29–51 (2005)
Ravsky, O.: On the palindromic decomposition of binary words. J. Automata Lang. Comb. 8(1), 75–83 (2003)
Rubinchik, M., Shur, A.M.: The number of distinct subpalindromes in random words [math.CO] (2015). arXiv:1505.08043
Sloane, N.J.A.: The on-line encyclopedia of integer sequences. http://oeis.org
Strothmann, D.: The affix array data structure and its applications to RNA secondary structure analysis. Theor. Comput. Sci. 389, 278–294 (2007)
Ukkonen, E.: On-line construction of suffix trees. Algorithmica 14(3), 249–260 (1995)
Problems of Asia-Pacific Informatics Olympiad 2014 (2014). http://olympiads.kz/apio2014/apio2014_problemset.pdf
Problems of the MIPT Fall Programming Training Camp 2014. Contest 12 (2014). https://drive.google.com/file/d/0B_DHLY8icSyNUzRwdkNFa2EtMDQ
Acknowledgement
The authors thank A. Kul’kov, O. Merkuriev and G. Nazarov for helpful discussions.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Rubinchik, M., Shur, A.M. (2016). EERTREE: An Efficient Data Structure for Processing Palindromes in Strings. In: Lipták, Z., Smyth, W. (eds) Combinatorial Algorithms. IWOCA 2015. Lecture Notes in Computer Science(), vol 9538. Springer, Cham. https://doi.org/10.1007/978-3-319-29516-9_27
Download citation
DOI: https://doi.org/10.1007/978-3-319-29516-9_27
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-29515-2
Online ISBN: 978-3-319-29516-9
eBook Packages: Computer ScienceComputer Science (R0)