Tanto Z como el prefijo de función se pueden usar para implementar el algoritmo KMP(Knuth-Morris-Pratt) para encontrar una subcadena en una cadena en O(|S|). La esencia de este algoritmo es la siguiente: atribuimos a la cadena que queremos encontrar la cadena en la que estamos buscando. Es muy recomendable poner un carácter separador entre estas líneas, es decir, un carácter que no aparece en ninguna línea (generalmente #).