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 018non cambiano perché sono simmetriche. Inoltre, le cifre 2e 5vengono scambiate, 2diventando 5e 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:21diventa 15:55e 00:15diventa 21:00. D'altra parte, 12:34o 16:27non sono più validi quando il mirroring (le cifre 34679diventano non valide), né lo sono 22:22né 18:21, poiché, poiché ci sono solo 24 ore al giorno e 60 minuti all'ora, non verrebbe visualizzato alcun orologio sano 55:55o 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.
1non è 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.
1potesse essere centrata.

Stringè una matrice diChar. È accettabile se la mia risposta fornisce un elenco diChar? I tipi sembrano identici se stampati a nudo.