Introduction
A string is an array — but three things about it break the assumptions the rest of this section
String Fundamentals
Every algorithm in this folder assumes a cost model for three operations that look free and are
Naive Matching & Rabin-Karp
The obvious way to find a pattern of length m inside a text of length n is to try it at every
KMP & Z-Algorithm
The naive substring scan tries the pattern at every text position and, on a mismatch, throws away
Suffix Structures & Autocomplete
Every algorithm earlier in this folder answers one question: does this one pattern occur in this