Vor 1994 verwendeten spanische Wörterbücher alphabetische Reihenfolge mit einer Besonderheit : Digraphen ll
und ch
wurden als einzelne Buchstaben betrachtet. ch
sofort gefolgt c
und ll
sofort gefolgt l
. Das Hinzufügen der Buchstaben ñ
, die folgt , n
in Spanisch, war der Befehl dann:
a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z
Seit 1994 ll
und ch
sind als Gruppen von zwei Buchstaben betrachtet ( l
, l
und c
, h
respectively) und damit alphabetischer Reihenfolge ist das gleiche wie in Englisch, mit Ausnahme des Briefes ñ
.
Die alte Ordnung war definitiv interessanter .
Die Herausforderung
Geben Sie eine Liste mit null oder mehr Wörtern ein und geben Sie die Liste sortiert nach der alten spanischen alphabetischen Reihenfolge aus. Die Sortierung erfolgt zwischen Wörtern (nicht zwischen Buchstaben innerhalb eines Wortes). Das heißt, Wörter sind atomar und die Ausgabe enthält dieselben Wörter in einer möglicherweise anderen Reihenfolge.
Zur Vereinfachung werden wir nicht als Brief ñ
oder akzentuierte Vokale á
, é
, í
, ó
, ú
, oder Großbuchstaben. Jedes Wort ist eine Folge von einem oder mehreren Zeichen aus dem Bereich von ASCII 97 ( a
) bis ASCII 122 ( z
).
Wenn es mehr als zwei l
Buchstaben in einer Reihe gibt, sollten sie von links nach rechts gruppiert werden. Das heißt, lll
ist ll
und dann l
(nicht l
und dann ll
).
Das Eingabeformat kann Folgendes sein: Wörter, die durch Leerzeichen, Zeilenumbrüche oder ein beliebiges geeignetes Zeichen getrennt sind. Wörter können nach Ihrer Wahl in Anführungszeichen gesetzt werden. Eine Liste oder ein Array von Wörtern ist ebenfalls zulässig. Jedes vernünftige Format ist gültig; Geben Sie es einfach in Ihrer Antwort an.
In ähnlicher Weise hat die Ausgabe ein beliebiges vernünftiges Format (nicht unbedingt dasselbe wie die Eingabe).
Codegolf, kürzeste Gewinne.
Testfälle
In den folgenden Beispielen werden Wörter durch Leerzeichen getrennt. Die erste Zeile wird eingegeben, die zweite Zeile wird ausgegeben:
llama coche luego cocina caldo callar calma
caldo calma callar cocina coche luego llama
cuchara cuchillo cubiertos cuco cueva
cubiertos cuco cuchara cuchillo cueva
"Wörter" können auch einzelne Buchstaben sein:
b c a ch ll m l n
a b c ch l ll m n
oder unwahrscheinliche Kombinationen (erinnern Sie sich an die Regel, l
die von links nach rechts gruppiert ist):
lll llc llz llll lllz
llc lll lllz llll llz
Eine leere Eingabe sollte eine leere Ausgabe ergeben:
Natürlich kann diese Reihenfolge auch auf andere Sprachen angewendet werden:
chiaro diventare cucchiaio
cucchiaio chiaro diventare
all alternative almond at ally a amber
a almond alternative all ally amber at
rr
einzigen Brief berücksichtigt . Zumindest nicht seit 1803. Aber es ist wahr, dass es anscheinend ein einzelner Brief in Amerika warAntworten:
Pyth,
1413 BytesUpdate: sah, dass dies akzeptiert wurde und bemerkte eine triviale 1-Byte-Golf. Hoppla.
Probieren Sie es online aus. Testsuite.
Suchen Sie für jedes Wort alle nicht überlappenden Übereinstimmungen für den regulären Ausdruck
ll|ch|.
. Dies teilt das Wort in die "Buchstaben". Sortieren Sie dann einfach die Wörter nach den aufgeteilten Listen.quelle
:D
PowerShell,
46445150 ByteDas
Α
Zeichen ist der griechische Buchstabe Alpha, der nach allen lateinischen Buchstaben in der Standard-Sortierreihenfolge von PowerShell kommt (zumindest auf meinem Computer bin ich mir nicht sicher, ob es in anderen Ländereinstellungen anders ist). In der UTF8-Codierung werden 2 Byte gezählt.Verwendungsbeispiel unter der Annahme, dass diese Zeichenfolge in einer Datei mit dem Namen gespeichert ist
es-sort.ps1
:quelle
Mathematica, 81 Bytes
Gleicher Ansatz wie die Antwort von TimmyD.
quelle
Python 2,
128116 BytesIch habe immer noch das Gefühl, dass es hier definitiv Raum für Verbesserungen gibt.
quelle
Javascript, 95 Bytes
quelle
Perl, 40 Bytes
Beinhaltet +1 für
-p
Führen Sie mit der Liste der Wörter auf STDIN:
spanisort.pl
quelle