Muchos relojes digitales muestran la hora utilizando dígitos simplificados que constan de solo siete luces diferentes que están encendidas o apagadas:
Cuando se refleja horizontalmente, los dígitos 018
no cambian porque son simétricos. Además, los dígitos 2
y 5
se intercambian, 2
convirtiéndose 5
y viceversa. Todos los demás dígitos se vuelven inválidos cuando se reflejan.
Por lo tanto, dado un reloj digital de 24 horas, hay muchas lecturas de reloj de tal manera que la imagen reflejada de la pantalla digital también es una lectura de reloj válida. Su tarea es generar todas esas lecturas de reloj junto con las lecturas reflejadas.
Por ejemplo, se 22:21
vuelve 15:55
y se 00:15
vuelve 21:00
. Por otro lado, 12:34
o 16:27
ya no son válidos cuando se refleja (cifras 34679
dejan de ser válidas), y tampoco lo son 22:22
o 18:21
, porque, como sólo hay 24 horas en un día y 60 minutos en una hora, no había reloj en su sano juicio visualizar 55:55
o 12:81
.
Tarea
Escriba un programa o una función que no ingrese y genere todos los pares válidos en orden ascendente como se muestra a continuación:
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
Se permite una nueva línea al final o al final. Tener algunos espacios directamente antes de un salto de línea también está permitido. Los tiempos deben estar en formato hh:mm
, rellenados con ceros cuando sea necesario.
Este es el código de golf , por lo que gana la respuesta más corta en bytes. Como de costumbre, las lagunas estándar no están permitidas.
1
no es exactamente idéntico a su imagen especular porque puede saber si los segmentos más a la derecha o más a la izquierda se usan para formar la "línea" vertical que constituye el dígito. Entiendo que los consideramos idénticos aquí.
1
podría centrarse.
String
es una matriz deChar
. ¿Es aceptable si mi respuesta da una lista deChar
? Los tipos se ven idénticos cuando se imprimen desnudos.