algoritmo KMP para el festival de ciclismo, por eso puede buscar la sección de circulación

Como todos sabemos, el algoritmo KMP puede buscar una sección de ciclo mínimo, se puede preguntar por qué la sección ciclo de ella?

Antes de bloggers comprensión del algoritmo KMP no es lo suficientemente profunda, la reciente ocurrencia tardía repentina, un estudio de profundidad de bit.

 KMP algoritmo es el siguiente arrays más importantes, junto [i] indica el valor máximo de la longitud de la cadena y la cadena de prefijo partidos todo i en sub-terminado no prefijo. Puede ser un poco alrededor, enrosque un rayo de él, esto es sólo la siguiente definición de matriz [].

Buscamos un festival de ciclo mínimo también utilizamos siguiente array [] de requisitos. cadena Supongamos que es un bucle de cuerda, puede haber muchas veces a la sección de bucle ciclo (suponiendo más de uno), puede asumir una sección circular str1 , cadena de caracteres original debe ser derivada de la sección de bucle de circulación, es decir, cadena = str1str1. ..str1 , si la longitud de la cadena len, de acuerdo con [la definición de siguiente] array, próximo [len] es al final de la cadena hasta el final de la longitud máxima de la no coincidencia de longitud de prefijo, si la cadena puede ser reciclado por la sección de un bucle muchas veces, luego el siguiente [n] comprende al menos una sección de ciclo determinado, y toda la cadena se retira desde el comienzo del primer ciclo de la posganglionares. Pintado a sí mismo se ven como en el libro. alineación figura ciertamente es así, cada bloque es una sección circular.

Debido a que hemos creado una sección de ciclo mínimo, si es que hay otras maneras, entonces debe estar alineada cuando la segunda cadena se mueva hacia adelante, si este es el caso, entonces ciertamente no es la sección más pequeña circulación. En este caso, la longitud mínima de la sección es circular len - Siguiente [len] , si puede venir en varias ocasiones de la circulación, se debe cumplir con las siguientes condiciones satisfechas.

solamente% ( referido como - la próxima [solamente] ) == 0

Si len - junto [len] == len cuenta toda la cadena es una sección circular, sentencia especial muy bien. Por supuesto, esta sección de ciclo mínimo, sub-sección requerida deben ser pequeñas circulación len - el siguiente [el siguiente [len]] , y así, por supuesto, para determinar lo que necesita.

Publicados 204 artículos originales · elogios ganado 13 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_43701790/article/details/104540823
Recomendado
Clasificación