Muitos relógios digitais exibem o tempo usando dígitos simplificados, compostos por apenas sete luzes diferentes que estão ligadas ou desligadas:
Quando espelhados horizontalmente, os dígitos 018
não mudam porque são simétricos. Além disso, os dígitos 2
e 5
são trocados, 2
tornando 5
- se e vice-versa. Todos os outros dígitos se tornam inválidos quando espelhados.
Assim, dado um relógio digital de 24 horas, existem muitas leituras de relógio, de modo que a imagem espelhada do visor digital também é uma leitura válida do relógio. Sua tarefa é produzir todas essas leituras de relógio juntamente com as leituras espelhadas.
Por exemplo, 22:21
torna 15:55
- 00:15
se e torna - se 21:00
. Por outro lado, 12:34
ou 16:27
não são mais válidos quando espelhados (os dígitos 34679
se tornam inválidos) e nem são 22:22
ou 18:21
, porque, como existem apenas 24 horas em um dia e 60 minutos em uma hora, nenhum relógio são exibido 55:55
ou 12:81
.
Tarefa
Escreva um programa ou uma função que não aceite nenhuma entrada e envie todos os pares válidos em ordem crescente, como mostrado abaixo:
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
Uma nova linha à direita ou à esquerda é permitida. Ter alguns espaços diretamente antes de um avanço de linha também é permitido. Os horários devem estar no formato hh:mm
, preenchidos com zeros quando necessário.
Isso é código-golfe , então a resposta mais curta em bytes vence. Como de costume, as brechas padrão não são permitidas.
1
não é exatamente idêntico à sua imagem espelhada, porque você pode dizer se os segmentos mais à direita ou mais à esquerda são usados para formar a "linha" vertical que compõe o dígito. Eu entendo que nós os consideramos idênticos aqui.
1
central pudesse ser centralizada.
String
é uma matriz deChar
. É aceitável se minha resposta fornecer uma lista deChar
? Os tipos parecem idênticos quando impressos.