आईएसओ 8601 मानक तिथि प्रारूप के बारे में अपने एक्सकेडीएन में रान्डेल ने उत्सुक वैकल्पिक संकेतन में झपकी ली:
बड़ी संख्या वे सभी अंक हैं जो वर्तमान तिथि में अपने सामान्य क्रम में दिखाई देते हैं, और छोटी संख्याएं उस अंक की घटनाओं के 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- संकेतन में एक तिथि को देखते हुए, संबंधित 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
, इसलिए पहला अंक है 2
। 2
ऊपर है 0
, इसलिए दूसरा अंक है 0
। 3
ऊपर है 1
, 4
ऊपर है 3
, इसलिए हमें 2013
पहले चार अंक मिलते हैं । अब 5
नीचे है 0
, इसलिए पांचवा अंक है 0
, 6
और 7
दोनों नीचे हैं 2
, इसलिए वे दोनों अंक हैं 2
। और अंत में, 8
नीचे है 7
, इसलिए अंतिम अंक है 8
, और हम समाप्त करते हैं 2013-02-27
। (हाइफ़न xkcd संकेतन में निहित हैं क्योंकि हम जानते हैं कि वे किस स्थिति में दिखाई देते हैं।)