The document summarizes string matching algorithms. It discusses the naive string matching algorithm which compares characters at each shift to find matches. It also describes the Rabin-Karp algorithm which uses hashing to match the hash value of the pattern to the hash value of substrings in the text. If the hash values match, it then checks for an exact character match. The Rabin-Karp algorithm has better average-case performance than the naive algorithm but the same worst-case performance of O((n-m+1)m) time.