Tecnología

Inicio

Subcadenas comunes en C

Una cadena en C es una matriz de caracteres. cadenas de C pueden ser letras, números o símbolos, texto o palabras al azar, pero todas las cadenas en este lenguaje de programación terminar con un carácter nulo. Programación en C, puede crear cadenas o manipularlos utilizando diversas funciones C. Una subcadena o subsecuencia es una porción de una cadena más grande. Hay varias herramientas matemáticas para determinar si dos cadenas comparten una subcadena común.

subseries

Para calificar como una subcadena, los caracteres de una cadena más corta deben aparecer en una cadena más larga en orden, pero no necesariamente juntos. Por ejemplo, "tigre" es una subcadena de "pequeña pepinillo" como "t", "i", "g", "E" y "r" todos aparecen en ese orden en la cadena más grande. Si una cadena completa aparece dentro de otra, la cadena más grande, la cadena más pequeña es una subsecuencia de la secuencia grande. Con un par de cadenas cortas, escogiendo una subsecuencia común es simple, pero a medida que se hacen más largas cuerdas, es más difícil de hacer eso con el ojo desnudo.

Árbol sufijo

Una forma para que coincida con subseries de caracteres en C es mediante la creación de un árbol de sufijos. Un árbol de sufijos toma una cadena de caracteres como su raíz, y luego se ramifica para mostrar todas las posibles subcadena. Si el "tigre" es la raíz, ramas incluyen "TIG", "ge" y "ER", cada uno de los cuales luego se ramifica más hasta llegar a las hojas de un solo carácter. Se puede crear un árbol de sufijos automáticamente utilizando un algoritmo y luego usar otro algoritmo para que coincida con las ramas en dos cadenas e identificar secuencias comunes.

funciones

Los programadores de C tienen varias funciones que pueden utilizar para comparar subseries. Si usted quiere saber si la cadena S2 es una subsecuencia de S1, "strstr" encontrará dentro S2 S1 si está allí. Si las dos cadenas comienzan de la misma manera, "strspn" le indica cuánto tiempo queda mirando como S1 S2 y el punto en el que diverge. Se pueden usar otras funciones para identificar el primer carácter de S1 con S2 compartida, o la cantidad de S1 S2 tiene ningún carácter en ella en todo.

Pareo

Los programadores han desarrollado una serie de algoritmos para la coincidencia de cadenas, que tiene aplicaciones en campos como la investigación de ADN y análisis de textos. Si desea desarrollar un algoritmo de su propia para subcadenas coincidentes en C, una cuestión a considerar es la información que necesita. Es necesario un algoritmo particular, si usted quiere saber qué personajes comparten las dos cadenas, y un algoritmo diferente si sólo se necesita saber cuántos caracteres las cadenas tienen en común. Buscando una coincidencia exacta es un proceso diferente en comparación a la búsqueda de una subsecuencia donde los personajes tienen que emparejan otros personajes interpuestos.