Estoy buscando un algoritmo rápido para fines de búsqueda en una cadena enorme (es una secuencia del genoma del organismo compuesta de cientos de millones a miles de millones de caracteres).Algoritmo ayuda! Algoritmo rápido en la búsqueda de una cadena con su compañero
Hay solo 4 caracteres {A, C, G, T} presentes en esta cadena, y "A" solo puede emparejarse con "T" mientras que "C" se empareja con "G".
Ahora estoy buscando dos subcadenas (con la restricción de longitud de ambas subcadenas entre {minLen, maxLen}, y la duración del intervalo entre {intervalMinLen, intervalMaxLen}) que pueden vincularse entre sí de forma antiparalela.
Por ejemplo, La cadena es: ATCAG Gacca TACGC CTGAT
restricciones: minlen = 4, maxlen = 5, intervalMinLen = 9, intervalMaxLen = 10
El resultado debe ser
par "ATCAG" con "CTGAT"
"TCAG" par con "CTGA"
Gracias de antemano.
Actualización: Ya tengo el método para determinar si dos cadenas se pueden emparejar entre sí. La única preocupación es hacer una búsqueda exhaustiva que consume mucho tiempo.
Parece un trabajo para Regex (System.Text.RegularExpressions.Regex). Esto no es tarea por casualidad, ¿o sí? –
No, no es hw – Mavershang
¿Cuáles son los valores típicos para minLen, maxLen, intervalMinLen e intervalMaxLen? – ElKamina