Molti orologi digitali visualizzano l'ora utilizzando cifre semplificate composte da sole sette luci diverse che sono accese o spente:
Se specchiati in orizzontale, le cifre 018
non cambiano perché sono simmetriche. Inoltre, le cifre 2
e 5
vengono scambiate, 2
diventando 5
e viceversa. Tutte le altre cifre diventano non valide quando si esegue il mirroring.
Pertanto, dato un orologio digitale di 24 ore, ci sono molte letture dell'orologio in modo tale che l'immagine speculare del display digitale sia anche una lettura di orologio valida. Il tuo compito è di generare tutte queste letture dell'orologio insieme alle letture speculari.
Ad esempio, 22:21
diventa 15:55
e 00:15
diventa 21:00
. D'altra parte, 12:34
o 16:27
non sono più validi quando il mirroring (le cifre 34679
diventano non valide), né lo sono 22:22
né 18:21
, poiché, poiché ci sono solo 24 ore al giorno e 60 minuti all'ora, non verrebbe visualizzato alcun orologio sano 55:55
o 12:81
.
Compito
Scrivi un programma o una funzione che non accetta input e restituisce tutte le coppie valide in ordine crescente come mostrato di seguito:
00:00 - 00:00
00:01 - 10:00
00:05 - 20:00
00:10 - 01:00
00:11 - 11:00
00:15 - 21:00
00:20 - 05:00
00:21 - 15:00
00:50 - 02:00
00:51 - 12:00
00:55 - 22:00
01:00 - 00:10
01:01 - 10:10
01:05 - 20:10
01:10 - 01:10
01:11 - 11:10
01:15 - 21:10
01:20 - 05:10
01:21 - 15:10
01:50 - 02:10
01:51 - 12:10
01:55 - 22:10
02:00 - 00:50
02:01 - 10:50
02:05 - 20:50
02:10 - 01:50
02:11 - 11:50
02:15 - 21:50
02:20 - 05:50
02:21 - 15:50
02:50 - 02:50
02:51 - 12:50
02:55 - 22:50
05:00 - 00:20
05:01 - 10:20
05:05 - 20:20
05:10 - 01:20
05:11 - 11:20
05:15 - 21:20
05:20 - 05:20
05:21 - 15:20
05:50 - 02:20
05:51 - 12:20
05:55 - 22:20
10:00 - 00:01
10:01 - 10:01
10:05 - 20:01
10:10 - 01:01
10:11 - 11:01
10:15 - 21:01
10:20 - 05:01
10:21 - 15:01
10:50 - 02:01
10:51 - 12:01
10:55 - 22:01
11:00 - 00:11
11:01 - 10:11
11:05 - 20:11
11:10 - 01:11
11:11 - 11:11
11:15 - 21:11
11:20 - 05:11
11:21 - 15:11
11:50 - 02:11
11:51 - 12:11
11:55 - 22:11
12:00 - 00:51
12:01 - 10:51
12:05 - 20:51
12:10 - 01:51
12:11 - 11:51
12:15 - 21:51
12:20 - 05:51
12:21 - 15:51
12:50 - 02:51
12:51 - 12:51
12:55 - 22:51
15:00 - 00:21
15:01 - 10:21
15:05 - 20:21
15:10 - 01:21
15:11 - 11:21
15:15 - 21:21
15:20 - 05:21
15:21 - 15:21
15:50 - 02:21
15:51 - 12:21
15:55 - 22:21
20:00 - 00:05
20:01 - 10:05
20:05 - 20:05
20:10 - 01:05
20:11 - 11:05
20:15 - 21:05
20:20 - 05:05
20:21 - 15:05
20:50 - 02:05
20:51 - 12:05
20:55 - 22:05
21:00 - 00:15
21:01 - 10:15
21:05 - 20:15
21:10 - 01:15
21:11 - 11:15
21:15 - 21:15
21:20 - 05:15
21:21 - 15:15
21:50 - 02:15
21:51 - 12:15
21:55 - 22:15
22:00 - 00:55
22:01 - 10:55
22:05 - 20:55
22:10 - 01:55
22:11 - 11:55
22:15 - 21:55
22:20 - 05:55
22:21 - 15:55
22:50 - 02:55
22:51 - 12:55
22:55 - 22:55
È consentita una riga finale o finale. È consentito anche avere alcuni spazi direttamente prima di un avanzamento riga. I tempi devono essere in formato hh:mm
, riempiti con zeri quando necessario.
Questo è code-golf , quindi vince la risposta più breve in byte. Come al solito, le scappatoie standard non sono ammesse.
1
non è esattamente identica alla sua immagine speculare perché puoi capire se i segmenti più a destra o quelli più a sinistra sono usati per formare la "linea" verticale che costituisce la cifra. Capisco che li consideriamo identici qui.
1
potesse essere centrata.
String
è una matrice diChar
. È accettabile se la mia risposta fornisce un elenco diChar
? I tipi sembrano identici se stampati a nudo.