Suffix Trees and Suffix Arrays
Suffix Tree supports many substring operations efficiently.
Suffix Array uses substantially less memory than a naive suffix tree.
LCP arrays complement suffix arrays for repeated-substring problems.
Applications include indexing, text search, and bioinformatics.