In den Vereinigten Staaten sind die beiden entgegengesetzten Verkehrsrichtungen auf einer Straße durch eine gestrichelte gelbe Linie getrennt, wenn die Weitergabe zulässig ist, und durch zwei durchgezogene gelbe Linien, wenn die Weitergabe nicht zulässig ist.
(Nur eine Seite kann gestrichelt sein, um das Überholen dieser Seite zu ermöglichen, und gelbe Linien können andere Dinge wie Mittelspuren oder umkehrbare Fahrspuren bedeuten, aber wir sind mit keinem dieser Fälle befasst.)
Schreiben Sie ein Programm, das eine lauflängencodierte Zeichenfolge P
zum Übergeben und N
zum Nichtübergeben verwendet und eine ASCII-Version der entsprechenden Straße ausgibt. Abgesehen von der Mittellinie weist die Straße immer das gleiche Muster auf, was aus den folgenden Beispielen leicht abgeleitet werden kann.
Vor P
und N
in der Eingabezeichenfolge steht eine positive Dezimalzahl . Diese Zahl definiert die Länge des vorbeifahrenden oder nicht vorbeifahrenden Bereichs des aktuellen Straßenteils.
Beispiele
Eine Eingabe von 12N
würde 12 Spalten ohne vorbeifahrende Straße erzeugen (Mittellinie alle =
):
____________
============
____________
Eine Eingabe von 12P
würde 12 Spalten einer vorbeifahrenden Straße erzeugen ( -
Wiederholung der Mittellinie ):
____________
- - - - - -
____________
Bestehen und Nichtbestehen können dann kombiniert werden, zB 4N4P9N7P1N1P2N2P
würde ergeben:
______________________________
====- - =========- - - -=-==-
______________________________
Dies sind 4 nicht passierende Spalten, dann 4 passierende , dann 9 nicht passierende usw.
Beachten Sie, dass eine vorbeifahrende Zone immer mit einem Bindestrich ( -
) ganz links und nicht mit einem Leerzeichen ( ) beginnt . Dies ist erforderlich.
Einzelheiten
- Der Eingang wird niemals zwei
N
Zonen oder zweiP
Zonen hintereinander haben. zB4P5P
wird niemals auftreten. - Sie müssen keine Buchstaben ohne führende positive Zahl unterstützen. Einfach
P
wird es immer sein1P
, einfachN
wird es immer sein1N
. - Es kann nachgestellte Leerzeichen geben, solange diese nicht über die letzte Straßensäule hinausragen. Es kann eine optionale nachgestellte Newline geben.
- Anstelle eines Programms können Sie eine Funktion schreiben, die die lauflängencodierte Zeichenfolge einliest und die ASCII-Straße ausgibt oder zurückgibt.
- Übernimmt die Eingabe auf jede Standardart (stdin, Kommandozeile, Funktion arg).
Der kürzeste Code in Bytes gewinnt. Tiebreaker ist früherer Beitrag.