Sua tarefa é aceitar como entrada duas seqüências genéticas e uma sequência de "pontos de cruzamento" e retornar a sequência de genes resultante dos cruzamentos indicados.
O que quero dizer com isso é dizer que você tem as seqüências [A, A, A, A, A, A, A]
e [Z, Z, Z, Z, Z, Z, Z]
, e cruza os pontos de 2
e 5
. A sequência resultante seria [A, A, Z, Z, Z, A, A]
, porque:
Cruze aqui: VV Índices: 0 1 2 3 4 5 6 Genes 1: AAAAAAA Genes 2: ZZZZZZZ Resultado: AAZZZAA ^ ^
Observe que, enquanto uso letras aqui para maior clareza, o desafio real usa números para genes.
O resultado é a primeira sequência até que um ponto de cruzamento seja encontrado; o resultado leva da segunda sequência até que outro ponto de cruzamento seja encontrado; o resultado leva a partir da primeira sequência até que um ponto de cruzamento seja encontrado ...
Entrada:
A entrada pode ser de qualquer forma razoável. As duas sequências podem ser um par, com os pontos como segundo argumento, todos os três podem ser argumentos separados, um único trigêmeo de
(genes 1, genes 2, cross-points)
, um mapa com chaves nomeadas ...Os pontos cruzados estarão sempre em ordem e sempre estarão dentro dos limites. Não haverá pontos duplicados, mas a lista de pontos de cruzamento pode estar vazia.
As seqüências de genes sempre terão o mesmo comprimento e não serão vazias.
Os índices podem ser baseados em 0 ou 1.
Os genes sempre serão números no intervalo de 0 a 255.
Não importa qual argumento seja "genes 1" ou "genes 2". No caso de não haver pontos de cruzamento, o resultado pode ser inteiramente "genes 1" ou "genes 2".
Resultado
A saída pode ser de qualquer forma razoável que não seja ambígua. Pode ser uma matriz / lista de números, uma matriz de números de sequência, uma sequência de números delimitada (algum caractere não numérico deve separar os números) ...
Ele pode ser devolvido ou impresso na saída padrão.
As entradas podem por programas ou funções completos.
Casos de teste (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 é o Code Golf.