เมื่อฉันเห็นคนแรกไม่กี่ปีที่ผ่านมาฉันมักจะปราบปรามด้วยนาฬิกาคำชนิดนี้ที่จริงเวลาสะกดด้วยคำที่สว่างขึ้นหรือไม่เป็นประโยคที่มีความหมาย
ข้อความที่ปรากฏบนนาฬิกานั้นมีดังต่อไปนี้
IT IS HALF TEN
QUARTER TWENTY
FIVE MINUTES TO
PAST TWO THREE
ONE FOUR FIVE
SIX SEVEN EIGHT
NINE TEN ELEVEN
TWELVE O'CLOCK
งานของคุณคือการเขียนนาฬิกาที่ใช้งานได้ คำจะสว่างขึ้นหากว่าเกี่ยวข้องกับการพิมพ์เวลาปัจจุบันเท่านั้น ไม่เช่นนั้นจะติดสว่าง คำว่า "สว่างขึ้น" โดยการพิมพ์และเป็น "ไฟลง" โดยถูกแทนที่ด้วยจำนวนช่องว่างความยาวของคำ
ตัวอย่าง: หากเวลาปัจจุบันคือ 17:23 ข้อความที่พิมพ์จะต้องตรงตามดังต่อไปนี้:
IT IS
TWENTY
FIVE MINUTES
PAST
FIVE
กฎระเบียบ
- เวลาที่พิมพ์คือตัวแปร 12 ชม. แต่ไม่มี AM / PM
- การปัดเศษจะกระทำบนฐานของนาทีเท่านั้น (วินาทีไม่เกี่ยวข้องทั้งหมด) การปัดเศษทำเพื่อผลคูณที่ใกล้เคียงที่สุดของ 5 ดังนั้นแม้ว่า 17:52:38 จะใกล้เคียงที่สุดกับ 17:55 แต่เนื่องจากวินาทีนั้นไม่เกี่ยวข้อง 17:52 จะถูกปัดเศษลงเป็น 17:50 และข้อความที่พิมพ์คือ "มันเป็นสิบนาทีถึงหก" (ด้วยระยะห่างที่เกี่ยวข้อง) ดังนั้นถ้า
XX
เป็นทวีคูณของห้าXX
จะถูกใช้จาก HH: (XX-2): 00 จนถึง HH: (XX + 2): 59 คำMINUTES
ต้องปรากฏถ้าFIVE
,TEN
หรือTWENTY
จะสว่างขึ้นในส่วนนาที (ก่อนที่จะ "เป็น" หรือ "อดีต") - คำที่ไม่เกี่ยวข้องทั้งหมดจะถูกแทนที่ด้วยช่องว่างให้มากที่สุดเท่าที่จำเป็นเพื่อเก็บข้อความไว้ในแม่แบบด้านบน ช่องว่างต่อท้ายอาจถูกตัดออก ช่องว่างที่เกี่ยวข้องกับการรักษาข้อความในตำแหน่งที่คาดหวังจะต้องเก็บไว้
เส้นต่อท้ายอาจถูกตัดแต่งเช่นกัน จะต้องปรากฏบรรทัดว่างที่เกี่ยวข้อง ตัวอย่าง:
IT IS TEN MINUTES PAST TWO
อย่าเปิดไฟ
TEN
ในบรรทัดแรกหรือบรรทัดFIVE
ที่สามเมื่อค่าเหล่านี้อ้างถึงชั่วโมง- คุณอาจยอมรับอินพุต หากคุณยอมรับอินพุตอินพุตจะเป็นเวลาที่จะพิมพ์ในรูปแบบที่ถูกต้องที่คุณต้องการ (สตริงรายการจำนวนเต็มเวลาท้องถิ่นพิมพ์การสนับสนุนภาษาของคุณ ... ) แต่ไม่อนุญาตให้ใช้พารามิเตอร์หากไม่เกี่ยวข้องกัน ถึงเวลาที่จะพิมพ์ หากคุณไม่รองรับอินพุตคุณต้องใช้เวลาปัจจุบัน หากคุณสนับสนุนทั้งสองจะดีกว่า แต่ไม่มีโบนัส;)
- รหัสของคุณอาจเป็นโปรแกรมฟังก์ชั่นแลมบ์ดา แต่ไม่ใช่ตัวอย่าง
- หากภาษาของคุณรองรับการพิมพ์ในทางใดทางหนึ่งมันจะต้องพิมพ์ผลลัพธ์ (ในไฟล์ในผลลัพธ์มาตรฐานฉันไม่รังเกียจ) หากภาษาของคุณไม่รองรับการพิมพ์ในทางใดทางหนึ่งก็อนุญาตให้ "ส่งคืน" ข้อความที่คาดหวัง ผลลัพธ์อาจเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กทั้งหมดไม่ใช่ทั้งสองอย่าง
- ช่องโหว่มาตรฐานใช้
- นี่คือโค้ดกอล์ฟเพื่อให้โค้ดที่สั้นที่สุดชนะ!
- ในการวัดความเป็นไปได้โปรดระบุลิงก์ไปยังล่ามออนไลน์ของภาษาของคุณ
กรณีทดสอบ
Input: <no input> (the current local time is 19:20)
Output:
IT IS
TWENTY
MINUTES
PAST
SEVEN
Input: 13:15
Output: (empty line is being printed)
IT IS
QUARTER
PAST
ONE
Input: 13:58
Output: (rounding)
IT IS
TWO
O'CLOCK
Input: 14:30
Output: (half is always a edge-case)
IT IS HALF
PAST TWO
Input: 15:35
Output: (light up "TO")
IT IS
TWENTY
FIVE MINUTES TO
FOUR
Input: 10:00
Output: (do not use the TEN or FIVE on the first line when referring to the hours)
IT IS
TEN
O'CLOCK
Input: 12:00
Output: (O'CLOCK and a lot of empty lines)
IT IS
TWELVE O'CLOCK