adding rabin karp algorithm