add brute-force substring search
add KMP algorithm