• i. String Basics and Parsing: Borders, periods and Fine–Wilf, the tool-choice table, brackets, expression parsing, compression ideas and string DP.
  • ii. String Hashing: Polynomial hashing mod with a random base, collision theory, LCP/compare, palindromes, correct 2D hashing, isomorphic substrings.
  • iii. Prefix Function and Z-Function: Prefix function, KMP and its automaton, Z-function, prefix occurrence counts, conversions and the classic applications.
  • iv. Trie and Aho-Corasick: Trie with counts and -th word, Aho–Corasick (occurrence counts, all matches, avoiding strings), dynamic Aho–Corasick.
  • v. Other Matching Algorithms: Boyer–Moore, Horspool, shift-and/or, Bitap with errors, Myers’ bit-vector, bitset matching, FFT wildcards, glob, pattern containment.
  • vi. Suffix Array and LCP: Prefix doubling and SA-IS, Kasai, LCP RMQ, distinct and -th substrings, LCS of strings, KMR, range distinct substrings.
  • vii. Suffix Automaton: Suffix automaton with occurrences, firstpos, LCS, -th substring, smallest rotation, LZ factorisation, generalised SAM; subsequence automaton.
  • viii. Suffix Tree: Ukkonen’s online construction and the LCP-interval tree from SA + LCP.
  • ix. Burrows-Wheeler Transform: BWT via the suffix array, LF-mapping inverse, FM-index backward search, move-to-front.
  • x. Palindromes and Manacher: Manacher, palindrome toolkit, minimum cuts, and online counting of palindromes in a range with wavelet trees.
  • xi. Eertree and Palindromic Factorization: Eertree with counts and per-position palindromes, and the minimum palindromic factorisation via series links.
  • xii. Lyndon Words and Minimal Rotation: Lyndon words, Duval factorisation, smallest rotation (Duval and two pointers), Lyndon generation, de Bruijn sequences.
  • xiii. Runs and Periodicity: All runs by Main–Lorentz, the runs theorem, and counting square occurrences.