(Aleatoriamente inspirado por https://codegolf.meta.stackexchange.com/a/17272/42963 )
Dada una matriz rectangular de dígitos (es decir, 0 - 9
), genera las "piezas" de la matriz como si los dígitos estuvieran conectados entre sí formando una sola pieza, en orden ascendente por los dígitos. Se garantiza que las piezas se conecten solo de forma ortogonal; ninguna pieza se conectará diagonalmente. Solo habrá un máximo de 10 piezas (es decir, una 3
pieza no aparecerá dos veces en la misma matriz).
Por ejemplo, dada la matriz
0 1 1 1
0 0 1 2
3 3 2 2
Las siguientes son las piezas y un resultado de ejemplo:
0
0 0
1 1 1
1
2
2 2
3 3
El espacio es importante para mantener la forma de las piezas, pero las piezas no necesariamente necesitan espacio interior. Las piezas en sí mismas deben diferenciarse de alguna manera consistente (por ejemplo, una nueva línea entre las piezas, asegurándose de que cada una sea un personaje diferente, etc.). Además, no se permiten espacios en blanco extraños (por ejemplo, líneas nuevas o columnas iniciales). Por ejemplo, lo siguiente también sería válido:
0
00
111
1
2
22
33
o
#
##
###
#
#
##
##
Pero lo siguiente no sería (tenga en cuenta los espacios finales detrás de la 0
s):
0
0 0
Las rotaciones o reflejos tampoco están permitidos. Por ejemplo, la salida
1
111
para la matriz anterior también es inválida.
Las piezas de la matriz pueden tener agujeros o ser solo un elemento:
0 0 0 1
0 2 0 1
0 0 0 3
O, la pieza puede ser la matriz completa:
0 0 0
0 0 0
Aquí hay un caso de prueba más grande y complicado:
1 1 1 1 1 2 2
3 4 4 4 2 2 2
5 5 4 4 2 0 0
5 6 6 6 6 7 7
5 6 8 8 6 6 7
9 6 6 6 7 7 7
Y un ejemplo de salida:
00
11111
22
222
2
3
444
44
55
5
5
6666
6 66
666
77
7
777
88
9
Reglas y E / S
- La entrada y salida se pueden dar por cualquier método conveniente .
- Puede imprimirlo en STDOUT o devolverlo como resultado de una función.
- Un programa completo o una función son aceptables.
1
Se requiere un espacio en blanco inicial para mantener la forma (p. Ej., La forma de "T" del ejemplo), se necesita un espacio en blanco consistente para distinguir las piezas y se permite una nueva línea final al final, pero no se permite ningún otro espacio en blanco.- Puede suponer con seguridad que las piezas están numeradas
0
de formaN
contigua, lo que significa que (por ejemplo)3
no se omitirán en una matriz de seis piezas. - Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
0
como valor de relleno? Por lo tanto, cada pieza se generará con el resto de los valores en la matriz establecida en0
-1
o algún otro valor en lugar de nada / espacio en blanco no estaría bien.
' '
usarse el espacio ( ) en ese caso?
-1
o un espacio que representa un espacio vacío, o la ausencia de un elemento si es posible)?