ISO 8601 standart tarih formatındaki 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 - 8 arasındaki endeksleri içerir. Tek bir yuvada birden fazla endeks varsa, bunlar en küçükten en büyüğe yan yana sıralanır. m
Tek bir yuvada en fazla 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
Bir ISO 8601 tarihi ( YYYY-MM-DD
) verildiğinde, ilgili xkcd tarih gösterimini 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.
Herhangi yıl 0000
için 9999
geçerli bir girdidir.
Sondaki boşluklara izin verilir, öndeki boşluklara izin verilmez. İsteğe bağlı olarak tek bir izleyen yeni satır gönderebilirsiniz.
Standart kod-golf kuralları geçerlidir.
Test Kılıfları
2013-02-27
2 3 1 4
0 1 2 3 7
5 67 8
2015-12-24
2 3 1 4
0 1 2 4 5
5 67 8
2222-11-11
1234
1 2
5678
1878-02-08
1 3 24
0 1 2 7 8
57 6 8
2061-02-22
2 4 1 3
0 1 2 6
5 678
3564-10-28
1 4 2 3
0 1 2 3 4 5 6 8
6 5 7 8
1111-11-11
1234
1
5678
0123-12-30
1 2 3 4
0 1 2 3
8 5 6 7