Su tarea es aceptar como entrada dos secuencias de genes y una secuencia de "puntos de cruce", y devolver la secuencia de genes que resulta de los cruces indicados.
Lo que quiero decir con esto es, digamos que tiene las secuencias [A, A, A, A, A, A, A]y [Z, Z, Z, Z, Z, Z, Z], y cruce los puntos de 2y 5. La secuencia resultante sería [A, A, Z, Z, Z, A, A], porque:
Cruce aquí: VV
Índices: 0 1 2 3 4 5 6
Genes 1: AAAAAAA
Genes 2: ZZZZZZZ
Resultado: AAZZZAA
^ ^
Tenga en cuenta que si bien estoy usando letras aquí para mayor claridad, el desafío real usa números para genes.
El resultado es la primera secuencia hasta que se encuentra un punto cruzado, luego el resultado toma de la segunda secuencia hasta que se encuentra otro punto cruzado, luego el resultado toma desde la primera secuencia hasta que se encuentra un punto cruzado ...
Entrada:
La entrada puede ser de cualquier forma razonable. Las dos secuencias pueden ser un par, con los puntos como el segundo argumento, los tres pueden ser argumentos separados, un solo triplete de
(genes 1, genes 2, cross-points), un mapa con teclas con nombre ...Los puntos cruzados siempre estarán en orden y siempre estarán dentro de los límites. No habrá puntos duplicados, pero la lista de puntos cruzados puede estar vacía.
Las secuencias de genes siempre tendrán la misma longitud y no estarán vacías.
Los índices pueden estar basados en 0 o 1.
Los genes siempre serán números en el rango 0-255.
No importa qué argumento sea "genes 1" o "genes 2". En el caso de que no haya puntos cruzados, el resultado puede ser completamente "genes 1" o "genes 2".
Salida
La salida puede ser cualquier forma razonable que no sea ambigua. Puede ser una matriz / lista de números, una matriz de números de cadena, una cadena de números delimitada (algunos caracteres no numéricos deben separar los números) ...
Se puede devolver o imprimir en la salida estándar.
Las entradas pueden por programas completos o funciones.
Casos de prueba (genes 1, genes 2, cross points) => result :
[0], [1], [0] => [1]
[0, 1], [9, 8], [1] => [0, 8]
[0, 2, 4, 6, 8, 0], [1, 3, 5, 7, 9, 1], [1, 3, 5] => [0, 3, 5, 6, 8, 1]
[1, 2, 3, 4], [5, 6, 7, 8], [] => [1, 2, 3, 4]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 2, 3, 6, 8] => [1, 1, 0, 1, 1, 1, 0, 0, 1, 1]
Este es el código de golf.