Como alguém que não pode se incomodar em olhar para seus pentominos para ver se ele tem uma forma retangular, decidi fazer você escrever um programa que faça isso.
Sua tarefa
Dada a entrada dividida por novas linhas contendo 12 caracteres únicos, decida se é uma solução válida.
Uma solução válida DEVE
- Tenha 5 de cada personagem (exceto novas linhas)
- Cada conjunto de caracteres deve estar totalmente conectado
- Cada conjunto de caracteres deve ter uma forma única
- Ter uma forma retangular regular
Se for uma solução válida, emita um valor verdadeiro, caso contrário, emita um valor falso.
Seu programa pode ser uma função ou um programa completo, mas deve levar a entrada de stdin e a saída para stdout.
Casos de teste
Soluções válidas
000111
203331
203431
22 444
2 46
57 666
57769!
58779!
58899!
5889!!
00.@@@ccccF111//=---
0...@@c))FFF1//8===-
00.ttttt)))F1/8888=-
Configurações inválidas
invalid (doesn't contain 12 unique characters)
111112222233333444445555566666
77777888889999900000qqqqqwwwww (Each set has the same shape)
1234567890qw
w1234567890q
qw1234567890
0qw123456789
90qw12345678 (None of the characters are connected)
1234567890qw (Not 5 characters in every set)
1111122222333334444455555666666
77777888889999900000qqqqqwwwwww (More than 5 characters in some sets)
00
0
00.@@@ccccF111//=---
...@@c))FFF1//8===-
.ttttt)))F1/8888=- (Doesn't form a rectangular shape)
1. O reflexo de um pentomino tem a mesma forma que o original? 2. Podemos assumir que a entrada consistirá em caracteres ASCII imprimíveis e novas linhas?
—
Dennis
@Dennis Sim e Sim
—
Azul
@DigitalTrauma Não é remotamente uma duplicata disso. Aliás, essa foi uma pergunta incrível, é uma pena que eu não tenha tido tempo de responder quando ela foi solicitada recentemente.
—
Level River St
@steveverill você está certo - eu não li essa pergunta corretamente #
—
Digital Trauma