Una habitación puede estar compuesta de rectángulos conectados, por ejemplo, una habitación en forma de L. Dicha habitación se puede describir mediante una lista de dimensiones que describe el tamaño de cada rectángulo.
Suponga que tiene dos listas de entrada. El primero contiene el ancho de los rectángulos apilados verticalmente uno sobre el otro. El segundo contiene la altura de los rectángulos.
Como ejemplo, la entrada [4 6][3 2]
será un rectángulo de 4 por 3 encima de un rectángulo de 6 por 2. La siguiente figura muestra esta forma. Tenga en cuenta que las paredes se consideran "delgadas", por lo tanto, los espacios entre la pared están determinados por la entrada.
[4 6][3 2]
____
| |
| |
| |_
| |
|______|
El desafío es: tomar una lista de dimensiones como entrada y dar salida a la forma de la habitación como arte ASCII. El formato debe ser como en las figuras de muestra:
- Todas las paredes horizontales se muestran con guiones bajos
- Todas las paredes verticales se muestran con barras.
- No habrá paredes donde los rectángulos estén conectados.
- La pared izquierda es recta
- Para más detalles, eche un vistazo a los casos de prueba
Suposiciones que puedes hacer:
- Todas las dimensiones están en el rango
[1 ... 20]
- Todas las dimensiones horizontales son números pares.
- El número de rectángulos estará en el rango
[1 ... 10]
- Solo se da una entrada válida
- Formato de entrada opcional (puede decidir el orden de las dimensiones de entrada, especifique en la respuesta).
Casos de prueba:
[2][1]
__
|__|
---
[4][2]
____
| |
|____|
---
[2 6 2 4][2 2 1 3]
__
| |
| |___
| |
| ___|
| |_
| |
| |
|____|
---
[2 14 6 8 4 18 2 10 4 2][1 2 3 1 2 1 1 1 2 1]
__
| |___________
| |
| _______|
| |
| |
| |_
| ___|
| |
| |_____________
| _______________|
| |______
| ____|
| |
| _|
|__|
[2 14 6 8 4 18 2 10 4 2][1 2 3 1 2 1 1 1 2 1]
-> (intercambio y retroceso) -> mi formato de entrada:[1 2 1 1 1 2 1 3 2 1][2 4 10 2 18 4 8 6 14 2]
Respuestas:
Retina,
169150113 bytesEl recuento de bytes asume la codificación ISO 8859-1.
El código contiene un espacio final en una nueva línea final.
Formato de entrada:
Por ejemplo:
Pruébalo en línea!
fuente
JavaScript (ES6) 174
La única parte crítica es la fila horizontal que une 2 partes de diferentes anchos, con la barra vertical en el lado derecho que puede estar en el medio o en el extremo derecho.
PRUEBA
fuente
Python 3,
230223222217 bytesGracias a @StewieGriffin @KevinLau por su ayuda
Resultados
fuente
a=1;b=2
)m=' _'
en lugar dem=[' ','_']
guardar como 5 bytes.Rubí 191
Golf por primera vez, también es mi primer día con Ruby, así que probablemente no sea la cosa más elegante del mundo, pero ¿funcionará?
fuente