โพสต์ครั้งแรก (และลบ) โดย@Tlinkซึ่งส่วนใหญ่จะเป็นแรงบันดาลใจจากคำถาม StackOverflow นี้
เนื่องจากมันเป็นความอัปยศที่ถูกลบไปแล้วเนื่องจากดูเหมือนว่าเป็นการท้าทายที่ดีโดยทั่วไปฉันคิดว่าฉันจะโพสต์ใหม่ด้วยการจัดรูปแบบและกฎที่เหมาะสม (ฉันได้ลองติดต่อ@Tlinkแล้วและได้รับอนุญาตจากเขา / เธอให้โพสต์ แต่เขาไม่ตอบกลับอีกซึ่งเป็นสาเหตุที่ฉันตัดสินใจโพสต์เองตอนนี้)
อินพุต:หกหลัก
เอาต์พุต:เวลาที่ถูกต้องครั้งแรกหรือครั้งสุดท้ายในรูปแบบ 24 ชั่วโมง ( 00:00:00
ผ่าน23:59:59
) (คุณสามารถเลือกได้เองว่าคุณจะใช้เวลาที่ถูกต้องครั้งแรกหรือครั้งสุดท้าย)
ตัวอย่าง:
เมื่ออินพุตถูก 1,8,3,2,6,4
เวลาต่อไปนี้สามารถสร้างได้:
12:36:48 12:38:46 12:46:38 12:48:36
13:26:48 13:28:46 13:46:28 13:48:26
14:26:38 14:28:36 14:36:28 14:38:26
16:23:48 16:24:38 16:28:34 16:28:43
16:32:48 16:34:28 16:38:24 16:38:42
16:42:38 16:43:28 16:48:23 16:48:32
18:23:46 18:24:36 18:26:34 18:26:43
18:32:46 18:34:26 18:36:24 18:36:42
18:42:36 18:43:26 18:46:23 18:46:32
21:36:48 21:38:46 21:46:38 21:48:36
23:16:48 23:48:16
ดังนั้นเราจะส่งออกอย่างใดอย่างหนึ่ง 12:36:48
หรือ23:48:16
ในกรณีนี้เป็นคนแรก / ครั้งสุดท้ายตามลำดับ
กฏท้าทาย:
- ระบุว่าคุณส่งออกเวลาที่ถูกต้องครั้งแรกหรือครั้งสุดท้ายในคำตอบของคุณ
- I / O ยืดหยุ่นได้ อินพุตสามารถเป็นจำนวนเต็มหกตัวที่แยกกัน สตริงที่มีตัวเลขหกหลัก รายการ / อาร์เรย์จำนวนเต็ม; หมายเลขเดียว (อาจเป็นฐานแปด) เอาท์พุทสามารถเป็นรายการ / อาร์เรย์ของตัวเลขที่ถูกต้อง; สตริงในรูปแบบ
HH:mm:ss
/HHmmss
/HH mm ss
; ทุกหลักที่พิมพ์ด้วยตัวคั่นบรรทัดใหม่ การโทรของคุณ - คุณได้รับอนุญาตให้ใช้ตัวเลขตามลำดับที่คุณต้องการดังนั้นพวกเขาจึงสามารถเรียงลำดับจากต่ำสุดไปสูงสุดหรือกลับกันได้
- หากไม่สามารถสร้างเวลาที่ถูกต้องด้วยตัวเลขที่ระบุ (เช่น
2,5,5,5,5,5
) โปรดระบุให้ชัดเจนในแบบที่คุณต้องการ สามารถกลับnull
/false
;"Not possible"
; ชนกับข้อผิดพลาด; เป็นต้น (คุณไม่สามารถส่งออกเวลาที่ไม่ถูกต้องเช่น55:55:52
หรือเวลาที่ถูกต้องเช่น00:00:00
.) โปรดระบุวิธีจัดการกับอินพุตซึ่งไม่สามารถสร้างเวลาที่ถูกต้องได้ - คุณไม่ได้รับอนุญาตให้ส่งออกเวลาที่ถูกต้องทั้งหมดที่เป็นไปได้ ควรส่งออก / คืนล่าสุดเท่านั้น
24
สำหรับชั่วโมง (เช่น24:00:00
) หรือ60
สำหรับนาที / วินาที (เช่น00:60:60
) ไม่ถูกต้อง ช่วงเป็น[00-23]
ชั่วโมงและ[00-59]
เป็นนาทีและวินาที
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น
กรณีทดสอบ:
Input: Earliest output: Latest output:
1,2,3,4,6,8 12:36:48 23:48:16
2,5,5,5,5,5 None possible None possible
0,0,0,1,1,1 00:01:11 11:10:00
1,1,2,2,3,3 11:22:33 23:32:11
9,9,9,9,9,9 None possible None possible
2,3,5,5,9,9 23:59:59 23:59:59
1,2,3,4,5,6 12:34:56 23:56:41
0,0,0,0,0,0 00:00:00 00:00:00
1,5,5,8,8,8 18:58:58 18:58:58
1,5,5,5,8,8 15:58:58 18:58:55
1,1,1,8,8,8 18:18:18 18:18:18
06:08:60
ใช้ได้เนื่องจากมีการกระโดดครั้งที่สองในช่วงนาทีนั้นหรือไม่
60
เป็นนาทีและวินาทีไม่ถูกต้อง ช่วงคือ[00-23]
, และ[00-59]
[00-59]
จะชี้แจงในสิ่งที่ท้าทาย
23:48:16
ตัวอย่างเอาต์พุตไม่ถูกต้องใช่ไหม