Ваша задача - принять в качестве входных данных две последовательности гена и последовательность «точек пересечения» и вернуть последовательность гена, полученную в результате указанных пересечений.
Я имею в виду, что у вас есть последовательности [A, A, A, A, A, A, A]и [Z, Z, Z, Z, Z, Z, Z], и пересекайте точки 2и 5. Результирующая последовательность будет [A, A, Z, Z, Z, A, A], потому что:
Крест здесь: ВВ
Индексы: 0 1 2 3 4 5 6
Гены 1: ААААААА
Гены 2: ZZZZZZZ
Результат: AAZZZAA
^ ^
Обратите внимание, что, хотя я здесь и использую буквы для ясности, в реальной задаче используются числа для генов
Результатом является первая последовательность до точки пересечения, затем результат берется из второй последовательности, пока не встретится другая точка пересечения, а затем результат берется из первой последовательности до точки пересечения ...
Входные данные:
Ввод может быть в любой разумной форме. Две последовательности могут быть парой, с точками в качестве второго аргумента, все три могут быть отдельными аргументами, одним триплетом
(genes 1, genes 2, cross-points), картой с именованными ключами ...Точки пересечения всегда будут в порядке и всегда будут в границах. Повторных точек не будет, но список точек пересечения может быть пустым.
Генные последовательности всегда будут одинаковой длины и будут непустыми.
Индексы могут быть 0 или 1 на основе.
Гены всегда будут числами в диапазоне 0-255.
Неважно, какой аргумент "гены 1" или "гены 2". В случае отсутствия точек пересечения, результатом может быть либо полностью «гены 1», либо «гены 2».
Выход
Вывод может быть любой разумной формой, которая не является неоднозначной. Это может быть массив / список чисел, массив строковых чисел, строка чисел с разделителями (некоторые нечисловые символы должны разделять числа) ...
Его можно вернуть или распечатать на стандартный вывод.
Записи могут быть полными программами или функциями.
Тестовые случаи (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]
Это Код Гольф.