งานของคุณคือการยอมรับการป้อนข้อมูลลำดับของยีนที่สองและลำดับของ "ข้ามจุด" และส่งกลับลำดับของยีนที่เป็นผลมาจากการข้ามครอสที่ระบุ
สิ่งที่ผมหมายถึงนี้คือว่าคุณมีลำดับ[A, A, A, A, A, A, A]
และ[Z, Z, Z, Z, Z, Z, Z]
และข้ามจุดและ2
5
ลำดับผลลัพธ์จะเป็น[A, A, Z, Z, Z, A, A]
เพราะ:
ข้ามที่นี่: VV ดัชนี: 0 1 2 3 4 5 6 ยีน 1: AAAAAAA ยีน 2: ZZZZZZZ ผลลัพธ์: AAZZZAA ^ ^
โปรดทราบว่าในขณะที่ฉันกำลังใช้ตัวอักษรที่นี่เพื่อความชัดเจนความท้าทายที่แท้จริงใช้ตัวเลขสำหรับยีน
ผลลัพธ์คือลำดับแรกจนกระทั่งพบจุดข้ามจากนั้นผลลัพธ์จะเริ่มจากลำดับที่สองจนกระทั่งพบจุดข้ามอีกจุดจากนั้นผลลัพธ์จะเริ่มจากลำดับแรกจนกระทั่งพบจุดตัดเหนือ ...
การป้อนข้อมูล:
การป้อนข้อมูลอาจเป็นรูปแบบที่เหมาะสม ทั้งสองลำดับสามารถเป็นคู่โดยมีคะแนนเป็นอาร์กิวเมนต์ที่สองทั้งสามสามารถแยกอาร์กิวเมนต์อาร์กิวเมนต์แฝดของ
(genes 1, genes 2, cross-points)
แผนที่ที่มีชื่อคีย์ ...จุดไขว้จะเป็นระเบียบและจะอยู่ในขอบเขตเสมอ จะไม่มีคะแนนซ้ำกัน แต่รายการข้ามจุดอาจว่างเปล่า
ลำดับของยีนจะมีความยาวเท่ากันเสมอและจะไม่ว่างเปล่า
ดัชนีสามารถเป็น 0 หรือ 1
ยีนจะเป็นตัวเลขในช่วง 0-255 เสมอ
ไม่สำคัญว่าการโต้แย้งแบบใดคือ "ยีน 1" หรือ "ยีน 2" ในกรณีที่ไม่มีการข้ามจุดผลลัพธ์อาจเป็นได้ทั้ง "ยีน 1" หรือ "ยีน 2"
เอาท์พุต
เอาต์พุตอาจเป็นรูปแบบที่สมเหตุสมผลซึ่งไม่คลุมเครือ มันสามารถเป็นอาร์เรย์ / รายการของตัวเลขอาร์เรย์ของตัวเลขสตริงที่คั่นสตริงที่ตัวเลข (ตัวละครที่ไม่ใช่ตัวเลขบางตัวต้องแยกตัวเลข) ...
สามารถส่งคืนหรือพิมพ์ไปยัง std-out ได้
คอมเมนต์สามารถโดยโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบ
กรณีทดสอบ(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]
นี่คือรหัสกอล์ฟ