add google kmp algorithm