당신의 임무는 입력으로 두 개의 유전자 서열과 "교차점"의 서열을 받아들이고, 표시된 교차점에서 발생하는 유전자 서열을 반환하는 것입니다.
내가이 의미하는 것은, 당신이 순서를 가지고 있다고한다 [A, A, A, A, A, A, A]과 [Z, Z, Z, Z, Z, Z, Z], 그리고 포인트를 건너 2와 5. 결과 시퀀스는[A, A, Z, Z, Z, A, A] 과 같습니다.
여기 교차 : VV
지수 : 012 34 5 6
유전자 1 : AAAAAAA
유전자 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]
이것은 코드 골프입니다.