KMP lookup algorithm