add boyer-moore substring search algorithm