Bei einer gegebenen Zeichenfolge besteht Ihre Aufgabe darin, sie wie unten beschrieben in eine zickzackartige Struktur zu reduzieren.
In einen Zickzack falten
Wir nehmen den String "Mississippi"
als Beispiel:
Geben Sie zunächst das längste Präfix aus, das nur aus eindeutigen Zeichen besteht:
Mis
Wenn Sie das erste doppelte Zeichen C erreichen , ignorieren Sie es und geben Sie das längste Präfix aus, das aus eindeutigen Zeichen der verbleibenden Zeichenfolge (
issippi
) vertikal unterhalb des ersten Vorkommens von C besteht :Mis i s
Wiederholen Sie den Vorgang im Wechsel zwischen horizontaler und vertikaler Fortsetzung. Aber seien Sie jetzt vorsichtig (in Schritt 1), um die horizontale Ausgabe nach dem letzten Auftreten des doppelten Zeichens fortzusetzen, das nicht unbedingt das letzte ist, wie in diesem Fall:
Mis i sip ----- Mis i sip i
Regeln
- Die Zeichenfolge enthält nur druckbare ASCII-Zeichen, jedoch keine Leerzeichen.
- Sie können in jeder Programmiersprache antreten und Eingaben und Ausgaben mit jeder Standardmethode und in jedem vernünftigen Format 1 vornehmen, wobei zu beachten ist, dass diese Lücken standardmäßig verboten sind. Dies ist Codegolf , daher gewinnt die kürzeste Übermittlung (in Bytes) für jede Sprache .
- 1 Eingabe: Zeichenfolge / Liste der Zeichen / was auch immer Ihre Sprache zur Darstellung von Zeichenfolgen verwendet. Ausgabe: Mehrzeilige Zeichenfolge, Liste von Zeichenfolgen, die Zeilen darstellen, oder Liste von Zeichenlisten / Zeichenfolgen der Länge 1, aber fügen Sie Ihrer Antwort nach Möglichkeit eine hübsche Druckversion Ihres Codes bei.
- In Bezug auf zusätzliche Leerzeichen kann die Ausgabe Folgendes enthalten:
- Führende / nachfolgende Zeilenumbrüche
- Leerzeichen in jeder Zeile / am Ende
- Eine konsistente Anzahl von führenden Leerzeichen in jeder Zeile
- Sie müssen mit der horizontalen Ausgabe beginnen. Möglicherweise beginnen Sie nicht vertikal.
Testfälle
Eingänge:
"Perfekt" "Mississippi" "Kuriositäten" "Trivialitäten" "Cthulhu" PPCG "pOpOpOpOpOp" "ABCCCE" "ABCCCECCEEEEC" "abcdcebffg" "abca" "AAAAAAAA"
Entsprechende Ausgänge:
Perf c t
Mis ich Schluck ich
Od ies t
Triv ein l ies t
Cthul u
P C G
pO OpO Pop p
ABC C E
ABC CCE E EG
A B C D e b fg
ABC
EIN AA EIN
ABCcde
"A" ≠ "a"
. Die Ausgabe für ABCcde
wäre nurABCcde
AAAAAAAA
b
sollten, da Sie nur Duplikate in der verbleibenden Zeichenfolge berücksichtigen sollten, dh nach "Verzweigung". Nach dem Erreichen der zweitenc
, Sie gibt den längsten Präfix der einzigartigen Zeichen des restlichen Zeichenfolge , das istebffg
(also die Ausgabeebf
vertikal und horizontal danach fort), so dass Sie von dem Teil der Zeichenfolge Sorge um die Zeichen nicht , dass wurde bereits vor dem Orientierungswechsel ausgegeben. Wenn es Ihnen immer noch unklar erscheint, werde ich mit diesem Testfall ein weiteres schrittweises Beispiel erstellen.