在美国,如果允许通过,则道路上两个相反的交通方向用虚线黄线分隔,如果不允许通过,则用两条实线黄线分隔。
(只需将一侧划线以允许通过该侧即可,黄线可能表示其他事物,例如中心车道或可逆车道,但我们与这些情况无关。)
编写一个程序,它在游程编码的字符串P
进行传递,并N
为不及格,并打印相应道路的ASCII版本。除中心线外,道路始终具有相同的样式,可以从以下示例中轻松推断出该样式。
输入字符串中的每个P
和之前将有一个正的十进制数N
。此数字定义的长度通过或不通过的道路的当前部分的区域。
例子
输入12N
会产生12列没有通过的路(中线all =
):
____________
============
____________
输入12P
会产生12列通过的路(-
重复中心线):
____________
- - - - - -
____________
通过和没有通过可以合并,例如4N4P9N7P1N1P2N2P
将产生:
______________________________
====- - =========- - - -=-==-
______________________________
这些是4个不通过列,然后是4个通过,然后9个不通过,等等。
请注意,通过区域始终以-
最左侧的破折号()开头,而不是以空格()开头。这是必需的。
细节
- 输入永远不会有两个
N
区域或P
连续两个区域。例如4P5P
永远不会发生。 - 您无需支持没有前导正数的字母。朴素
P
永远是1P
,朴素N
永远是1N
。 - 只要不超出道路的最后一列,就可以有尾随的空间。可能有一个可选的尾随换行符。
- 您可以编写一个函数,该函数采用游程长度编码的字符串并打印或返回ASCII路径,而不是程序。
- 以任何标准方式(stdin,命令行,函数arg)接受输入。
以字节为单位的最短代码获胜。Tiebreaker是较早的帖子。