В Соединенных Штатах два противоположных направления движения на дороге разделены пунктирной желтой линией, если проезд разрешен, и двумя сплошными желтыми линиями, если проезд не разрешен.
(Только одна сторона может быть разбита, чтобы разрешить проход на этой стороне, и желтые линии могут означать другие вещи, такие как центральные или обратимые полосы, но нас не касается ни один из этих случаев.)
Напишите программу, которая в перспективе длины кодируются строки P
для прохождения и N
для не прохождения , и выводит версию ASCII соответствующей дороги. За исключением центральной линии, дорога всегда имеет один и тот же рисунок, что легко можно понять из приведенных ниже примеров.
Перед каждым P
и N
во входной строке будет положительное десятичное число . Это число определяет длину зоны прохождения или отсутствия зоны прохождения текущей части дороги.
Примеры
Ввод 12N
будет производить 12 столбцов без проезжей части (все линии центра =
):
____________
============
____________
На входе 12P
будет получено 12 столбцов проходящей дороги ( -
повторение центральной линии ):
____________
- - - - - -
____________
Передача и отсутствие прохождения могут быть объединены, например 4N4P9N7P1N1P2N2P
:
______________________________
====- - =========- - - -=-==-
______________________________
Это 4 столбца без проходов, затем 4 без проходов , затем 9 без проходов и т. Д.
Обратите внимание, что зона прохождения всегда начинается с тире ( -
) с левой стороны, а не с пробела ( ). Это обязательно.
Детали
- На входе никогда не будет двух
N
зон или двухP
зон подряд. например4P5P
, никогда не произойдет. - Вам не нужно поддерживать буквы без начального положительного числа. Обычная
P
всегда будет1P
, простаяN
всегда будет1N
. - Могут быть задние пробелы, если они не выходят за пределы последней колонны дороги. Там может быть один дополнительный завершающий перевод строки.
- Вместо программы вы можете написать функцию, которая принимает закодированную строку длины строки и печатает или возвращает дорогу ASCII.
- Принимает ввод любым стандартным способом (stdin, командная строка, функция arg).
Самый короткий код в байтах побеждает. Tiebreaker - более ранний пост.