Skip to content

Latest commit

 

History

History
80 lines (75 loc) · 2.62 KB

File metadata and controls

80 lines (75 loc) · 2.62 KB

List of string algorithms used in competitive programming, organized from basic to advanced:

Basic String Algorithms:

  1. Basic String Operations
    • String Concatenation
    • Substring Extraction
    • String Comparison
    • Character Frequency Count

Intermediate String Algorithms:

  1. Pattern Matching Algorithms
    • Naive Pattern Matching
    • Rabin-Karp Algorithm
    • Knuth-Morris-Pratt (KMP) Algorithm
    • Boyer-Moore Algorithm
    • Z Algorithm
  2. String Searching and Matching
    • Longest Prefix Suffix (LPS) Array
    • Failure Function in KMP
  3. String Hashing
    • Polynomial Hashing
    • Double Hashing
  4. Palindrome Algorithms
    • Longest Palindromic Substring (Manacher’s Algorithm)
    • Palindromic Substrings Count
    • Palindrome Partitioning

Advanced String Algorithms:

  1. Suffix Arrays and Suffix Trees
    • Suffix Array Construction
    • Kasai’s Algorithm for LCP Array
    • Ukkonen’s Algorithm for Suffix Trees
  2. Aho-Corasick Algorithm
    • Trie Construction for Multiple Patterns
    • Aho-Corasick Automaton
  3. Suffix Automaton
  4. Text Compression Algorithms
    • Run-Length Encoding (RLE)
    • Huffman Coding
    • Lempel-Ziv-Welch (LZW) Compression
  5. Burrows-Wheeler Transform (BWT)
  6. Longest Common Substring
  7. String Distance Algorithms
    • Levenshtein Distance (Edit Distance)
    • Hamming Distance
    • Jaccard Similarity
  8. String Manipulation and Transformation
    • Minimum Window Substring
    • Anagram Substring Search
  9. Rotation and Permutation Algorithms
    • Lexicographic Rotation (Booth’s Algorithm)
    • Permutation Generation
  10. Dynamic Programming on Strings
    • Longest Common Subsequence (LCS)
    • Shortest Common Supersequence (SCS)
    • Sequence Alignment (Needleman-Wunsch, Smith-Waterman)

Specialized and Hybrid String Techniques:

  1. String Matching with Wildcards
  2. Bitwise String Algorithms
    • Bitwise Operations for Subset Matching
  3. String Reconstruction Algorithms
    • De Bruijn Sequences
  4. Generalized Suffix Tree
    • Finding all Occurrences of Multiple Patterns
  5. Advanced Text Indexing
    • Enhanced Suffix Arrays
    • Wavelet Trees for Text Processing
  6. Dynamic String Algorithms
    • Dynamic Hashing
    • Dynamic Aho-Corasick
  7. Approximate String Matching
    • Fuzzy Matching Algorithms
    • Approximate Pattern Matching with Errors

Multilingual and Large Text Processing:

  1. Unicode and Multibyte String Handling
  2. External Memory Algorithms for String Processing
    • Algorithms for Handling Large Text Data
    • External Suffix Arrays