add KMP algorithm