Если у вас будут длинные строки, вы не можете считать «хэш-таблицу» постоянным временем! время выполнения зависит от длины строки! для длинных струн это вызовет проблемы. Кроме того, у вас есть проблема коллизий со слишком маленькой таблицей или слишком плохой хеш-функцией.
если вы хотите использовать хеширование, посмотрите на karp-rabin. если вы хотите, чтобы алгоритм зависел ТОЛЬКО от размера искомого слова, пожалуйста, посмотрите на aho-corasick.