Nel suo xkcd sul formato di data standard ISO 8601 Randall ha inserito una notazione alternativa piuttosto curiosa:
I numeri grandi sono tutte le cifre che appaiono nella data corrente nel loro solito ordine e i numeri piccoli sono indici basati su 1 delle occorrenze di quella cifra. Quindi l'esempio sopra rappresenta2013-02-27 .
Definiamo una rappresentazione ASCII per tale data. La prima riga contiene gli indici da 1 a 4. La seconda riga contiene le cifre "grandi". La terza riga contiene gli indici da 5 a 8. Se ci sono più indici in un singolo slot, vengono elencati uno accanto all'altro dal più piccolo al più grande. Se ci sono al massimo mindici in un singolo slot (cioè sulla stessa cifra e nella stessa riga), ogni colonna dovrebbe avere m+1caratteri larghi e allineati a sinistra:
2 3 1 4
0 1 2 3 7
5 67 8
Vedi anche la sfida del compagno per la conversione opposta.
La sfida
Data una data ISO 8601 (YYYY-MM-DD ), emette la corrispondente notazione della data xkcd.
È possibile scrivere un programma o una funzione, prendendo l'input tramite STDIN (o l'alternativa più vicina), l'argomento della riga di comando o l'argomento della funzione e producendo il risultato tramite STDOUT (o l'alternativa più vicina), il valore di ritorno della funzione o il parametro della funzione (out).
Ogni anno da 0000a 9999è un input valido.
Gli spazi finali sono consentiti, gli spazi iniziali no. Se lo si desidera, è possibile generare una nuova riga finale finale.
Si applicano le regole standard del code-golf .
Casi test
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
