ISO 8601 standart tarih formatıyla ilgili xkcd'sinde Randall oldukça ilginç bir alternatif gösterime girdi:
Büyük sayılar, geçerli tarihte olağan sıralarında görünen tüm sayılardır ve küçük sayılar, bu sayının oluşumunun 1 temelli göstergeleridir. Bu yüzden yukarıdaki örnek temsil eder 2013-02-27
.
Böyle bir tarih için bir ASCII gösterimi tanımlayalım. İlk satır 1 - 4 arasındaki endeksleri içerir. İkinci satır "büyük" rakamları içerir. Üçüncü satır, 5 ila 8 arasındaki endeksleri içerir. Tek bir yuvada birden fazla endeks varsa, bunlar en küçükten en büyüğe yan yana listelenir. m
Tek bir yuvada en çok endeks varsa (yani aynı basamakta ve aynı satırda), her sütun m+1
geniş ve sola yaslı karakterlerden oluşmalıdır :
2 3 1 4
0 1 2 3 7
5 67 8
Tersine dönüşüm için eşlik eden meydan okumaya da bakın .
Meydan okuma
Xkcd notasyonunda bir tarih verildiğinde, karşılık gelen ISO 8601 tarihini ( YYYY-MM-DD
) verin.
STDIN (veya en yakın alternatif), komut satırı argümanı veya işlev argümanı yoluyla giriş alarak ve sonucu STDOUT (veya en yakın alternatif), fonksiyon dönüş değeri veya function (out) parametresi ile çıktı alarak bir program veya işlev yazabilirsiniz.
Girişin, yıllar 0000
ile 9999
dahil olanlar arasında geçerli bir tarih olduğunu varsayabilirsiniz .
Girişte baştaki boşluklar olmayacak, ancak çizgilerin boşluklarla en fazla bir boşluk sütunu içeren bir dikdörtgene kadar doldurulduğunu varsayabilirsiniz.
Standart kod-golf kuralları geçerlidir.
Test Kılıfları
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
yukarıda 2
, yani ilk rakam 2
. 2
yukarıda 0
, yani ikinci rakam 0
. 3
yukarıda 1
, 4
yukarıda 3
, bu yüzden 2013
ilk dört hane olarak alıyoruz . Şimdi 5
altındadır 0
beşinci rakamdır yüzden 0
, 6
ve 7
her ikisi de aşağıda 2
, bu nedenle bu rakam her ikisi de 2
. Ve nihayet, 8
aşağıda 7
, bu yüzden son rakam 8
, ve son buluyoruz 2013-02-27
. (Tireler xkcd notasyonunda örtüktür, çünkü hangi konumlarda göründüklerini biliyoruz.)