["big-Oh of m n"] like the naïve solution but in practice performs very well, especially on multiple targets, because it uses (*) hashing as an approximation test for equality.
"Guarantee" and "noise" thresholds can be used in an algorithm for doing this task that the inventors called "winnowing." That algorithm builds on an earlier algorithm for doing this task that uses a randomly selected fingerprint function and efficiently generalizes to multidimensional rectangular arrays. One algorithm for this task has a worst case running time of O(mn) ["big-Oh of m n"] like the naïve solution but in practice performs very well, especially on multiple targets, because it uses (*) hashing as an approximation test for equality. Common algorithms for doing this task do some preprocessing work, like the computation of a prefix function in the KMP algorithm. This task is also done by the Rabin-Karp algorithm and is often used to detect plagiarism. For 10 points, name this task of looking through text for a specific sequence of characters.
"Guarantee" and "noise" thresholds can be used in an algorithm for doing this task that the inventors called "winnowing.
string searching [or string matching or pattern matching; accept word forms; prompt on partial answers]