List of string algorithms used in competitive programming, organized from basic to advanced:
- Basic String Operations
- String Concatenation
- Substring Extraction
- String Comparison
- Character Frequency Count
- Pattern Matching Algorithms
- Naive Pattern Matching
- Rabin-Karp Algorithm
- Knuth-Morris-Pratt (KMP) Algorithm
- Boyer-Moore Algorithm
- Z Algorithm
- String Searching and Matching
- Longest Prefix Suffix (LPS) Array
- Failure Function in KMP
- String Hashing
- Polynomial Hashing
- Double Hashing
- Palindrome Algorithms
- Longest Palindromic Substring (Manacher’s Algorithm)
- Palindromic Substrings Count
- Palindrome Partitioning
- Suffix Arrays and Suffix Trees
- Suffix Array Construction
- Kasai’s Algorithm for LCP Array
- Ukkonen’s Algorithm for Suffix Trees
- Aho-Corasick Algorithm
- Trie Construction for Multiple Patterns
- Aho-Corasick Automaton
- Suffix Automaton
- Text Compression Algorithms
- Run-Length Encoding (RLE)
- Huffman Coding
- Lempel-Ziv-Welch (LZW) Compression
- Burrows-Wheeler Transform (BWT)
- Longest Common Substring
- String Distance Algorithms
- Levenshtein Distance (Edit Distance)
- Hamming Distance
- Jaccard Similarity
- String Manipulation and Transformation
- Minimum Window Substring
- Anagram Substring Search
- Rotation and Permutation Algorithms
- Lexicographic Rotation (Booth’s Algorithm)
- Permutation Generation
- Dynamic Programming on Strings
- Longest Common Subsequence (LCS)
- Shortest Common Supersequence (SCS)
- Sequence Alignment (Needleman-Wunsch, Smith-Waterman)
- String Matching with Wildcards
- Bitwise String Algorithms
- Bitwise Operations for Subset Matching
- String Reconstruction Algorithms
- De Bruijn Sequences
- Generalized Suffix Tree
- Finding all Occurrences of Multiple Patterns
- Advanced Text Indexing
- Enhanced Suffix Arrays
- Wavelet Trees for Text Processing
- Dynamic String Algorithms
- Dynamic Hashing
- Dynamic Aho-Corasick
- Approximate String Matching
- Fuzzy Matching Algorithms
- Approximate Pattern Matching with Errors
- Unicode and Multibyte String Handling
- External Memory Algorithms for String Processing
- Algorithms for Handling Large Text Data
- External Suffix Arrays