Betrachten Sie diese fünf ASCII-Meerestiere:
- Standardfisch:
><>
oder<><
- Schneller Fisch:
>><>
oder<><<
- Starker Fisch:
><>>
oder<<><
- Dehnbarer Fisch:
><<<>
oder<>>><
- Krabbe:
,<..>,
Schreiben Sie ein Programm, das eine beliebige Zeichenfolge akzeptiert <>,.
. Wenn es eine Möglichkeit gibt, die gesamte Zeichenfolge als eine Reihe sich nicht überlappender Meerestiere zu interpretieren , sollte die Zeichenfolge mit einzelnen Leerzeichen zwischen den Kreaturen nachgedruckt werden. Ist diese Interpretation nicht möglich, sollte nichts ausgegeben werden (das Programm endet stillschweigend).
Beispielsweise kann die Zeichenfolge <><><>
als zwei Standardfische hintereinander interpretiert werden. Die entsprechende Ausgabe wäre <>< ><>
.
Als weiteres Beispiel ><>><>>
enthält die Zeichenfolge "Instanzen" von ...
(Klammern nur als Indikatoren hinzugefügt)
- ein paar Standardfische:
[><>][><>]>
- ein flotter Fisch:
><[>><>]>
- ein robuster Fisch in mehrfacher Hinsicht:
[><>>]<>>
und><>[><>>]
Allerdings erstreckt sich nur die Paarung eines Standardfisches und eines robusten Fisches [><>][><>>]
über die gesamte Länge der Schnur, ohne dass sich die Zeichen der Fische teilen (keine Überlappungen). Somit ist die Ausgabe an entsprechenden ><>><>>
ist ><> ><>>
.
Wenn es mehrere Möglichkeiten gibt, die Zeichenfolge zu interpretieren, können Sie eine davon drucken. (Und nur druckt ein . Von ihnen) Zum Beispiel <><<<><
kann als Standard Fisch und ein stabilen Fisch interpretiert werden: [<><][<<><]
oder als schnellen Fisch und ein Standard - Fisch: [<><<][<><]
. Also entweder <>< <<><
oder <><< <><
wäre eine gültige Ausgabe.
Die Krabben sind nur zum Spaß. Da sie nicht mit beginnen oder enden <
oder >
, sind sie viel leichter zu (zumindest optisch) zu identifizieren. Zum Beispiel die Zeichenfolge
,<..>,><<<>,<..>,><>,<..>,<>>><,<..>,><>>,<..>,<<><,<..>,<><,<..>,>><>
würde natürlich die Ausgabe produzieren
,<..>, ><<<> ,<..>, ><> ,<..>, <>>>< ,<..>, ><>> ,<..>, <<>< ,<..>, <>< ,<..>, >><>
Hier einige Beispiele für Zeichenfolgen (eine pro Zeile), die keine Ausgabe erzeugen:
<><>
,<..>,<..>,
>>><>
><<<<>
,
><><>
,<><>,
<<<><><<<>>><>><>><><><<>>><>><>>><>>><>><>><<><
Die letzte Zeichenfolge hier kann analysiert werden, wenn Sie das führende Zeichen entfernen <
:
<<>< ><<<> >><> ><> ><> <>< <>>>< >><> >><> >><> ><>> <<><
(Möglicherweise gibt es andere mögliche Ausgaben.)
Einzelheiten
- Die Eingabezeichenfolge enthält nur die Zeichen
<>,.
. - Die Eingabezeichenfolge muss mindestens ein Zeichen lang sein.
- Übernehmen Sie die Eingabe auf eine übliche Weise (Befehlszeile, stdin) und geben Sie sie an stdout aus.
- Der kürzeste Code in Bytes gewinnt. ( Handy-Byte-Zähler. ) Tiebreaker ist früherer Beitrag.