Ihre Aufgabe ist es, zwei Gensequenzen und eine Sequenz von "Crossover-Punkten" als Eingabe zu akzeptieren und die Gensequenz zurückzugeben, die sich aus den angegebenen Crossovers ergibt.
Damit meine ich, dass Sie die Sequenzen [A, A, A, A, A, A, A]
und [Z, Z, Z, Z, Z, Z, Z]
haben und Punkte von 2
und kreuzen 5
. Die resultierende Sequenz wäre [A, A, Z, Z, Z, A, A]
, weil:
Hier kreuzen: VV Indizes: 0 1 2 3 4 5 6 Gene 1: AAAAAAA Gene 2: ZZZZZZZ Ergebnis: AAZZZAA ^^
Beachten Sie, dass ich hier aus Gründen der Klarheit Buchstaben verwende, während die eigentliche Herausforderung Zahlen für Gene verwendet.
Das Ergebnis ist die erste Sequenz, bis ein Überkreuzungspunkt angetroffen wird. Dann wird das Ergebnis von der zweiten Sequenz übernommen, bis ein weiterer Überkreuzungspunkt angetroffen wird. Dann wird das Ergebnis von der ersten Sequenz übernommen, bis ein Überkreuzungspunkt angetroffen wird.
Eingang:
Die Eingabe kann in jeder vernünftigen Form erfolgen. Die zwei Sequenzen können ein Paar sein, mit den Punkten als zweitem Argument, alle drei können separate Argumente sein, ein einzelnes Triplett von
(genes 1, genes 2, cross-points)
, eine Karte mit benannten Schlüsseln ...Die Kreuzungspunkte werden immer in Ordnung sein und werden immer eingehend sein. Es gibt keine doppelten Punkte, aber die Liste der Überkreuzungspunkte kann leer sein.
Gensequenzen sind immer gleich lang und nicht leer.
Indizes können 0 oder 1 sein.
Gene sind immer Zahlen im Bereich von 0 bis 255.
Es spielt keine Rolle, welches Argument "Gene 1" oder "Gene 2" ist. Wenn keine Kreuzungspunkte vorhanden sind, kann das Ergebnis entweder vollständig "Gene 1" oder "Gene 2" sein.
Ausgabe
Die Ausgabe kann in jeder vernünftigen Form erfolgen, die nicht mehrdeutig ist. Es kann ein Array / eine Liste von Zahlen sein, ein Array von Zeichenfolgenummern, eine durch Trennzeichen getrennte Zeichenfolge von Zahlen (einige nicht numerische Zeichen müssen die Zahlen trennen) ...
Es kann zurückgegeben oder auf die Standardausgabe gedruckt werden.
Einträge können durch vollständige Programme oder Funktionen erfolgen.
Testfälle (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]
Das ist Code Golf.