RabinKarp(t, p, q) {n = |t|, m = |p|, d = |Σ|}begin h ← d^(m-1) mod q p̄ ← t̄₀ ← 0 for i ← 1 to m do ▷ Preprocessing p̄ ← (d p̄ + p[i]) mod q t̄₀ ← (d t̄₀ + t[i]) mod q od for j ← 0 to n-m do ▷ Searching if p̄ = t̄ⱼ then if p[1..m] = t[j+1..j+m] then Output(j) if j < n-m then t̄ⱼ₊₁ ← (d(t̄ⱼ - t[j+1]h) + t[j+m+1]) mod q odend