Tanto Z quanto o prefixo da função podem ser usados para implementar o algoritmo KMP(Knuth-Morris-Pratt) para encontrar uma substring em uma string em O(|S|). A essência desse algoritmo é a seguinte: atribuímos à string que queremos encontrar a string na qual estamos pesquisando. É altamente desejável colocar um caractere separador entre essas linhas, ou seja, um caractere que não ocorra em nenhuma linha (geralmente #).