The Boyer-Moore algorithm is a fast algorithm for the exact string matching problem.
The algorithm scans the characters of the pattern from right to left beginning with the rightmost character. During the testing of a possible placement of pattern P against text T, a mismatch of text character T[i] = c with the corresponding pattern character P[j] is handled as follows: If c is not contained anywhere in P, then shift the pattern P completely past T[i]. Otherwise, shift P until an occurrence of character c in P gets aligned with T[i]. This technique likely to avoid lots of needless comparisons by significantly shifting pattern relative to text.