These are the shortest on-ramp notes in this category and the ones most likely to be usable immediately in contest practice.
KMP
String problems are often bookkeeping problems in disguise. The goal is to keep the invariant small enough to update in linear time.
Prefix structure, automata, and linear-time matching tools.
String algorithms are full of linear-time routines that look mysterious until the maintained boundary becomes clear. The notes in this branch are written to keep that boundary explicit.
Which prefix or suffix information is enough to continue?
Which transitions are reused from one position to the next?
When is a character comparison paid for once, and when can it repeat too many times?
The labels are not cosmetic. They are there to signal the amount of prerequisite structure and implementation fragility you should expect before opening the note.
These are the shortest on-ramp notes in this category and the ones most likely to be usable immediately in contest practice.
KMP
These notes assume the base routine is already familiar and focus on the first real structural upgrades.
Z-Function, Rolling Hash, Trie
These are the notes where proofs, reductions, or implementation details become the main bottleneck.
Suffix Array, Suffix Automaton, Manacher, Aho-Corasick
These are the finished note pages in this category, each with rendered TeX, C++ code, references, and practice suggestions.
Prefix-function based linear-time string matching with no backtracking in the text.
Measure how much each suffix matches the full string, then reuse that linear-time structure for pattern matching and periodicity.
A fast probabilistic fingerprint for substring comparison, string sets, and prefix-based matching tricks.
Store strings by prefix so inserts, prefix checks, and dictionary transitions depend on length rather than set size.
Sort all suffixes once, then reuse the order and LCP information for many substring and lexicographic queries.
A linear-time substring automaton that is especially good at online extension, distinct-substring counts, and occurrence queries.
Compute longest odd and even palindromic radii around every center in linear time.
A trie with failure links that searches many patterns in one text in a single pass.
The default order follows each note's dependency weight: early notes establish primitives, later notes reuse them or assume the same invariants without re-explaining them.
Prefix-function based linear-time string matching with no backtracking in the text.
Measure how much each suffix matches the full string, then reuse that linear-time structure for pattern matching and periodicity.
A fast probabilistic fingerprint for substring comparison, string sets, and prefix-based matching tricks.
Store strings by prefix so inserts, prefix checks, and dictionary transitions depend on length rather than set size.
Sort all suffixes once, then reuse the order and LCP information for many substring and lexicographic queries.
A linear-time substring automaton that is especially good at online extension, distinct-substring counts, and occurrence queries.
Compute longest odd and even palindromic radii around every center in linear time.
A trie with failure links that searches many patterns in one text in a single pass.
These are still intentionally shown as planned or outline topics rather than shallow filler. The branch should feel incomplete in honest places instead of fake-complete everywhere.
Raw files are still available here when you want the original TeX, C++, or statement assets.