Ausgehend von einer geordneten Liste von Buchstabenfolgen in Groß- und Kleinschreibung (az XOR AZ), vor denen jeder Zeichenfolge 0 oder mehr Leerzeichen () vorangestellt sind, geben Sie dieselbe Liste aus, wobei die Zeichenfolgen auf jeder Einrückungsstufe sortiert sind. Einrückungstiefen unter verschiedenen übergeordneten Elementen werden zu Sortierzwecken als separate Listen gezählt.
Beispiel
Wenn Ihre Eingabe lautet:
bdellium
fox
hound
alien
aisle
wasabi
elf
alien
horseradish
xeno
irk
wren
tsunami
djinn
zebra
Ihre Ausgabe sollte sein
aisle
horseradish
xeno
wasabi
alien
elf
bdellium
alien
fox
hound
djinn
zebra
irk
tsunami
wren
Wenn Sie möchten, stellen Sie es sich wie eine Verzeichnisliste vor, und Sie müssen die Namen in jedem Verzeichnis sortieren.
Minutiae
- Ein Element kann durch eine beliebige Anzahl von Leerzeichen eingerückt werden. Wenn es mit derselben Anzahl von Leerzeichen eingerückt ist wie das vorherige Element, gehört es in dieselbe Sortierhierarchie wie das vorherige Element. Wenn es durch mehr Leerzeichen eingerückt wird, beginnt eine neue Unterhierarchie.
- Wenn eine Zeile um weniger Leerzeichen eingerückt ist als die darüber liegende Zeile, wird eine Verknüpfung zur nächstgelegenen Untergruppe mit dem gleichen # oder weniger Leerzeichen davor hergestellt (wie im obigen Beispiel der Meerrettich, der auf die darüber liegende Wasabi-Gruppe verweist, weil Wasabi ist der erste Artikel darüber, der nicht mehr Leerzeichen als Meerrettich enthält.)
- Sie müssen die Einrückungsstufe jedes Eingabeelements in Ihrer Ausgabe beibehalten
- Tabulatoren in der Ausgabe sind nicht zulässig
- Die erste Zeile der Eingabe wird niemals eingerückt
- Ihr Programm muss mindestens eine Zeichenfolge aus Groß- und Kleinbuchstaben verarbeiten. es muss nicht beides bewältigen.
Wertung
Dies ist ein Code-Golf , also gewinnt die Antwort, die die wenigsten Bytes verwendet.
['a','..b', '.c', '..d']
, was soll der Ausgang sein? ['a','..b', '.c', '..d']
oder ['a','.c','..b', '..d']
oder was anderes? (Ich benutze '.'
anstelle von Raum für visuelle Klarheit).