De nombreuses horloges numériques affichent l'heure en utilisant des chiffres simplifiés composés de seulement sept lumières différentes qui sont allumées ou éteintes:
Lorsqu'ils sont mis en miroir horizontalement, les chiffres 018
ne changent pas car ils sont symétriques. En outre, les chiffres 2
et 5
échangent, 2
devenant 5
et vice versa. Tous les autres chiffres deviennent invalides lorsqu'ils sont mis en miroir.
Ainsi, étant donné une horloge numérique de 24 heures, il existe de nombreuses lectures d'horloge telles que l'image miroir de l'affichage numérique est également une lecture d'horloge valide. Votre tâche consiste à générer toutes ces lectures d'horloge avec les lectures en miroir.
Par exemple, 22:21
devient 15:55
et 00:15
devient 21:00
. En revanche, 12:34
ou 16:27
ne sont plus valides lorsqu'ils sont mis en miroir (les chiffres 34679
deviennent invalides), et ni l'un 22:22
ni l'autre 18:21
, car, comme il n'y a que 24 heures par jour et 60 minutes par heure, aucune horloge saine ne s'afficherait 55:55
ou 12:81
.
Tâche
Écrivez un programme ou une fonction qui ne prend aucune entrée et sort toutes les paires valides dans l'ordre croissant comme indiqué ci-dessous:
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
Une nouvelle ligne de fin ou de début est autorisée. Il est également permis d'avoir quelques espaces juste avant un saut de ligne. Les heures doivent être au format hh:mm
, complétées de zéros si nécessaire.
Il s'agit de code-golf , donc la réponse la plus courte en octets l'emporte. Comme d'habitude, les failles standard sont interdites.
1
n'est pas exactement identique à son image miroir car vous pouvez dire si les segments les plus à droite ou les segments les plus à gauche sont utilisés pour former la "ligne" verticale qui compose le chiffre. Je comprends que nous les considérons comme identiques ici.
1
pourrait être centré.
String
est un tableau deChar
. Est-ce acceptable si ma réponse donne une liste deChar
? Les types semblent identiques lorsqu'ils sont imprimés nus.