add Rabin-Karp implemention