En los Estados Unidos , las dos direcciones opuestas del tráfico en una carretera están separadas por una línea amarilla discontinua si se permite el paso y dos líneas amarillas continuas si no se permite el paso.
(Solo un lado puede ser punteado para permitir pasar por ese lado, y las líneas amarillas pueden significar otras cosas como el centro o los carriles reversibles, pero no nos preocupa ninguno de esos casos).
Escriba un programa que tome una cadena codificada de longitud de ejecución de P
para pasar y N
para que no pase , e imprime una versión ASCII de la carretera correspondiente. Excepto por la línea central, la carretera siempre tiene el mismo patrón, que puede deducirse fácilmente de los ejemplos a continuación.
Habrá un número decimal positivo antes de cada uno P
y N
en la cadena de entrada. Este número define la longitud de la región de paso o no paso de la parte actual de la carretera.
Ejemplos
Una entrada de 12N
produciría 12 columnas de camino sin paso (línea central todas =
):
____________
============
____________
Una entrada de 12P
produciría 12 columnas de camino de paso (línea central que se -
repite):
____________
- - - - - -
____________
Pasar y no pasar se puede combinar, por ejemplo 4N4P9N7P1N1P2N2P
, produciría:
______________________________
====- - =========- - - -=-==-
______________________________
Estas son 4 columnas que no pasan , luego 4 que pasan , luego 9 que no pasan , etc.
Tenga en cuenta que una zona de paso siempre comienza con un guión ( -
) en el lado izquierdo, no un espacio ( ). Esto es requerido.
Detalles
- La entrada nunca tendrá dos
N
zonas o dosP
zonas en una fila. por ejemplo4P5P
, nunca ocurrirá. - No necesita admitir letras sin un número positivo principal. La llanura
P
siempre será1P
, la llanuraN
siempre será1N
. - Puede haber espacios finales siempre que no se extiendan más allá de la columna final del camino. Puede haber una nueva línea final opcional.
- En lugar de un programa, puede escribir una función que tome la cadena codificada de longitud de ejecución e imprima o devuelva el camino ASCII.
- Toma información de cualquier manera estándar (stdin, línea de comando, función arg).
El código más corto en bytes gana. Tiebreaker es una publicación anterior.