ใน xkcd ของเขาเกี่ยวกับรูปแบบวันที่มาตรฐาน ISO 8601 Randall ดักในสัญกรณ์ทางเลือกที่ค่อนข้างอยากรู้:
ตัวเลขขนาดใหญ่คือตัวเลขทั้งหมดที่ปรากฏในวันที่ปัจจุบันตามลำดับปกติและตัวเลขขนาดเล็กเป็นดัชนีที่อิงกับ 1 ครั้งของการเกิดขึ้นของตัวเลขนั้น 2013-02-27
ดังนั้นตัวอย่างข้างต้นหมายถึง
ลองกำหนดการแสดง ASCII สำหรับวันดังกล่าว บรรทัดแรกมีดัชนี 1 ถึง 4 บรรทัดที่สองประกอบด้วยตัวเลข "ใหญ่" บรรทัดที่สามประกอบด้วยดัชนี 5 ถึง 8 หากมีดัชนีหลายรายการในสล็อตเดียวรายการเหล่านั้นจะอยู่ติดกันตั้งแต่ขนาดเล็กที่สุดไปหามากที่สุด หากมีm
ดัชนีมากที่สุดในช่องเดียว (เช่นในหลักเดียวกันและในแถวเดียวกัน) แต่ละคอลัมน์ควรมีm+1
อักขระกว้างและจัดชิดซ้าย:
2 3 1 4
0 1 2 3 7
5 67 8
ดูความท้าทายสำหรับคู่หูสำหรับการแปลงฝั่งตรงข้าม
ความท้าทาย
ได้รับวันที่ในรูปแบบ xkcd-notation ให้ส่งออกวันที่ ISO 8601 ที่สอดคล้องกัน ( YYYY-MM-DD
)
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์
คุณอาจจะสมมติว่าการป้อนข้อมูลเป็นวันที่ที่ถูกต้องระหว่างปี0000
และ9999
รวม
จะไม่มีช่องว่างนำหน้าใด ๆ ในอินพุต แต่คุณอาจสมมติว่าบรรทัดนั้นถูกเติมด้วยช่องว่างไปยังสี่เหลี่ยมผืนผ้าซึ่งมีคอลัมน์ช่องว่างต่อท้ายมากที่สุด
ใช้กฎมาตรฐานของกอล์ฟ
กรณีทดสอบ
2 3 1 4
0 1 2 3 7
5 67 8
2013-02-27
2 3 1 4
0 1 2 4 5
5 67 8
2015-12-24
1234
1 2
5678
2222-11-11
1 3 24
0 1 2 7 8
57 6 8
1878-02-08
2 4 1 3
0 1 2 6
5 678
2061-02-22
1 4 2 3
0 1 2 3 4 5 6 8
6 5 7 8
3564-10-28
1234
1
5678
1111-11-11
1 2 3 4
0 1 2 3
8 5 6 7
0123-12-30
1
อยู่เหนือดังนั้นหลักแรกคือ2
อยู่เหนือดังนั้นหลักที่สองคือ อยู่เหนือ, อยู่เหนือเพื่อให้เราได้รับเป็นตัวเลขสี่หลักแรก ตอนนี้อยู่ด้านล่างดังนั้นหลักที่ห้าคือ, และมีทั้งที่ด้านล่างเพื่อให้ทั้งสองของตัวเลขเหล่านี้จะ และในที่สุดก็อยู่ด้านล่างดังนั้นหลักสุดท้ายเป็นและเราจบลงด้วย (ยัติภังค์มีความหมายโดยนัยในเครื่องหมาย xkcd เพราะเรารู้ว่าตำแหน่งใดที่ปรากฏ)2
2
0
0
3
1
4
3
2013
5
0
0
6
7
2
2
8
7
8
2013-02-27