Cómo encontrar la subcadena común más larga de tres o más cadenas usando una matriz de sufijos

Concatene las tres cadenas juntas y sepárelas con un separador que se garantiza que no se mostrará en ninguna de las cadenas. Ahora construya la matriz de sufijos y la matriz de lcp para esa nueva cadena. Ahora definamos algunas variables i, j, total, matriz de banderas de tamaño 3, todas inicializadas con ceros. Ahora comencemos a examinar los sufijos ordenados uno por uno en orden, si el valor total es menor que 3 y vemos que un sufijo que pertenece a una de las tres cadenas incrementa su bandera en 1 e incrementa la variable total en 1 también e incrementa j , cuando el valor total variable llega a tres, hemos visto al menos tres suficientes que pertenecen a las tres cadenas diferentes, ahora tiene una ventana entre i y j, el valor mínimo de la matriz lcp en esta ventana es la subcadena común más larga que esos basta con compartir en común, en este caso, incrementa la variable i not j y disminuye el indicador de la cadena a la que apuntaba en uno, si el indicador cae a cero en total también. Tome el valor máximo sobre todos los eventos del segundo tipo (cuando el total llegó a 3), esa es su respuesta. Esta solución se puede generalizar a cadenas X no solo a tres.

More Interesting

¿Dónde es útil el conocimiento de las estructuras de datos en Swift?

¿Cuáles son algunas aplicaciones prácticas del sistema binario?

¿Cuál es una manera simple de implementar la paginación en una matriz en Javascript?

¿Cómo se puede usar la IA para ayudar a los reclutadores en la toma de decisiones?

Dada una matriz 2D de valores booleanos, ¿cuál es la forma correcta de determinar si contiene un triángulo?

¿Cuál es la mejor manera de ingresar al último proceso de aprendizaje de algoritmos de reconocimiento facial?

¿Por qué estudiamos diferentes algoritmos para la misma tarea?

¿Cuál es una versión más amigable para principiantes de CLRS para algoritmos de aprendizaje? ¿Estaría rompiendo la entrevista de codificación?

¿Son los gráficos la mejor estructura de datos para representar circuitos? ¿Hay algo mejor?

¿Cuál es la lógica para verificar si dos árboles de búsqueda binarios son estructuralmente idénticos o no?

¿Cuál es el algoritmo de búsqueda utilizado por el motor de búsqueda de Google? ¿Cuál es su complejidad?

¿Cuál es el algoritmo utilizado por la búsqueda de imagen inversa de Google (es decir, la búsqueda por imagen)? ¿Qué algoritmos necesitaría entender para crear una funcionalidad similar a pequeña escala?

¿Son los algoritmos de los programas de computadora, o consisten en algoritmos, o ambos?

¿Qué debo hacer si no soy bueno en el desarrollo de backend o en los algoritmos, debería enfocarme en UI / UX?

Cómo determinar la complejidad de esta recurrencia T (n) = 16 * T (n / 4) + n! usando el teorema maestro