ท้าทาย:
การป้อนข้อมูล:
รายการที่เรียงลำดับของจำนวนเต็มบวก
เอาท์พุท:
จำนวนของจำนวนเต็มซึ่งยังคงอยู่ที่ดัชนีเดียวกันแน่นอนหลังจากหมุนตัวเลขในแต่ละจำนวนเต็มจำนวนดัชนีของมันไปทางซ้ายและเรียงลำดับรายการแก้ไขอีกครั้ง
ตัวอย่าง:
อินพุต: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
เอาต์พุต (การจัดทำดัชนีตาม 0): 6
เอาท์พุท (การจัดทำดัชนีที่ 1):5
ทำไม?
การจัดทำดัชนีแบบ 0:
After rotating each: [8,94,73,102,592,276,8227,3338,9217,63784,89487,7887471]
Sorted again: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]
Input indices: 0 1 2 3 4 5 6 7 8 9 10 11
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]
Modified indices: 0 2 1 3 5 4 7 6 8 9 10 11
Equal indices: ^ ^ ^ ^ ^ ^
So the output is: 6
การจัดทำดัชนีแบบ 1:
After rotating each: [8,49,37,021,925,762,2278,3383,2179,37846,94878,8874717]
Sorted again: [8,(0)21,37,49,762,925,2179,2278,3383,37846,94878,8874717]
Input indices: 1 2 3 4 5 6 7 8 9 10 11 12
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list: [8,21,37,49,762,925,2179,2278,3383,37846,94878,8874717]
Modified indices: 1 4 3 2 6 5 9 7 8 10 11 12
Equal indices: ^ ^ ^ ^ ^
So the output is: 5
กฏท้าทาย:
- รายการอินพุตรับประกันว่าจะมีจำนวนเต็มบวกเท่านั้น
- รายการอินพุตรับประกันว่าจะเรียงลำดับจากต่ำสุดไปสูงสุด
- รายการอินพุตรับประกันว่ามีอย่างน้อยสองรายการ
- ดังที่คุณเห็นด้านบนอนุญาตให้ทำดัชนีทั้งแบบ 0 และ 1 ได้ โปรดระบุในคำตอบของคุณว่าคุณใช้สองในข้อใดเนื่องจากเอาต์พุตอาจแตกต่างกันไป!
- ชั้นนำ
0
หลังจากหมุนจะถูกละเว้นซึ่งสามารถมองเห็นได้ด้วยตัวอย่างเช่น 1 ตามข้างต้นที่จำนวนเต็ม102
จะกลายเป็น021
21
หลังจากหมุนและได้รับการรักษาแล้ว - จำนวนเต็มรับประกันว่าจะไม่ซ้ำกันในรายการอินพุตและรับประกันว่าจะไม่ซ้ำกันหลังจากการหมุนเสร็จสมบูรณ์
- โปรดทราบว่าเราดูที่ตำแหน่งของจำนวนเต็มที่หมุนแล้วเท่านั้นซึ่งสัมพันธ์กับตำแหน่งของอินพุตไม่ใช่กับค่าของรายการอินพุต ในการชี้แจงสิ่งที่ผมหมายถึงนี้ด้วยการป้อนข้อมูลรายการ
[1234,3412]
และการจัดทำดัชนี 1 ตามรายการกลายเป็นหลังจากการหมุนแต่ละจำนวนเต็มของมันจำนวนดัชนีครั้งและจากนั้นเมื่อเรียงกลายเป็น[2341,1234]
[1234,2341]
แม้ว่าทั้งรายการอินพุตดั้งเดิมและรายการหมุนจะมีจำนวนเต็มที่1234
ตำแหน่งนำ แต่ก็ไม่เหมือนกัน! หมุน1234
เป็น3412
ก่อน ดังนั้นเอาต์พุต 1 ดัชนีสำหรับรายการอินพุตนี้จึง0
เนื่องจากจำนวนเต็มสองตัวได้เปลี่ยนตำแหน่งไปแล้ว - อินพุตมีความยืดหยุ่น สามารถเป็นรายการ / สตรีม / อาร์เรย์ของจำนวนเต็ม / สตริง / ดิจิตอาร์เรย์ ฯลฯ กรุณาระบุสิ่งที่คุณใช้ถ้าคุณไม่ใช้อินพุตเป็นจำนวนเต็ม
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานใช้สำหรับคำตอบของคุณด้วยกฎ I / O เริ่มต้นดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและประเภทผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ (เช่นTIO )
- นอกจากนี้ขอแนะนำให้เพิ่มคำอธิบายสำหรับคำตอบของคุณ
กรณีทดสอบ:
Input: [8, 49, 73, 102, 259, 762, 2782, 3383, 9217, 37846, 89487, 7471788]
0-based output: 6
1-based output: 5
Input: [1234, 3412]
0-based output: 2
1-based output: 0
Input: [2349, 2820, 17499, 21244, 29842, 31857, 46645, 56675, 61643, 61787]
0-based output: 3
1-based output: 0
Input: [4976, 11087, 18732, 22643, 52735]
0-based output: 2
1-based output: 3
Input: [4414, 5866, 7175, 8929, 14048, 16228, 16809, 19166, 24408, 25220, 29333, 44274, 47275, 47518, 53355]
0-based output: 4
1-based output: 4
Input: [11205, 16820, 63494]
0-based output: 1
1-based output: 3
อย่าลังเลที่จะสร้างกรณีทดสอบแบบสุ่มด้วย (หรือดึงแรงบันดาลใจจาก) โปรแกรม 05AB1Eที่ไม่ได้รับการตอบรับซึ่งอินพุตมีขนาดของรายการแบบสุ่ม (หมายเหตุ: ผลลัพธ์ของเครื่องกำเนิดไฟฟ้านี้อาจไม่สอดคล้องกับกฎ " จำนวนเต็มจะรับประกันเฉพาะ รายการอินพุตและรับประกันว่าจะไม่ซ้ำกันหลังจากการหมุนเสร็จสิ้น "ดังนั้นควรคำนึงถึงเมื่อใช้งาน)