Avant 1994, les dictionnaires espagnols utilisaient l'ordre alphabétique avec une particularité : les digraphes ll
et ch
étaient considérés comme s'il s'agissait de lettres simples. ch
immédiatement suivi c
, et ll
immédiatement suivi l
. En ajoutant la lettre ñ
, qui suit n
en espagnol, l'ordonnance était alors:
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
Depuis 1994 ll
et ch
sont considérés comme des groupes de deux lettres ( l
, l
et c
, h
respectivement), et donc l'ordre alphabétique est le même qu'en anglais, à l'exception de la lettre ñ
.
L'ancien ordre était définitivement plus intéressant .
Le défi
Entrez une liste de zéro ou plusieurs mots et sortez la liste triée selon l'ancien ordre alphabétique espagnol. Le tri s'effectue entre les mots (et non entre les lettres d'un mot). Autrement dit, les mots sont atomiques et la sortie contiendra les mêmes mots dans un ordre éventuellement différent.
Pour simplifier, nous ne considérerons pas lettre ñ
ou voyelles accentuées á
, é
, í
, ó
, ú
ou lettres majuscules. Chaque mot sera une séquence d'un ou plusieurs caractères tirés de la plage incluse de ASCII 97 ( a
) à ASCII 122 ( z
).
S'il y a plus de deux l
lettres d'affilée, elles doivent être regroupées de gauche à droite. Autrement dit, lll
est ll
et puis l
(pas l
et puis ll
).
Le format d'entrée peut être: des mots séparés par des espaces, des retours à la ligne ou tout autre caractère approprié. Les mots peuvent être entourés de guillemets ou non, à votre choix. Une liste ou un tableau de mots est également acceptable. Tout format raisonnable est valide; dites-le simplement dans votre réponse.
De la même manière, la sortie sera de n'importe quel format raisonnable (pas nécessairement le même que l'entrée).
Golf de code, victoires les plus courtes.
Cas de test
Dans les exemples suivants, les mots sont séparés par des espaces. La première ligne est entrée, la seconde est sortie:
llama coche luego cocina caldo callar calma
caldo calma callar cocina coche luego llama
cuchara cuchillo cubiertos cuco cueva
cubiertos cuco cuchara cuchillo cueva
Les "mots" peuvent aussi être des lettres simples:
b c a ch ll m l n
a b c ch l ll m n
ou combinaisons improbables (rappelez-vous la règle qui l
est regroupée de gauche à droite):
lll llc llz llll lllz
llc lll lllz llll llz
Une entrée vide doit donner une sortie vide:
Bien entendu, cette commande peut également s'appliquer à d'autres langues:
chiaro diventare cucchiaio
cucchiaio chiaro diventare
all alternative almond at ally a amber
a almond alternative all ally amber at
rr
une seule lettre ; du moins pas depuis 1803. Mais il est vrai que, apparemment, il était considéré comme une seule lettre dans les AmériquesRéponses:
Pyth,
1413 octetsMise à jour: vu que cela a été accepté et remarqué un golf trivial de 1 octet. Oups.
Essayez-le en ligne. Suite de tests.
Pour chaque mot, recherchez toutes les correspondances qui ne se chevauchent pas pour l'expression régulière
ll|ch|.
. Cela divise le mot en "lettres". Ensuite, triez simplement les mots selon les listes fractionnées.la source
:D
PowerShell,
46445150 octetsLe
Α
caractère est la lettre grecque alpha qui vient après toutes les lettres latines dans l'ordre de tri par défaut de PowerShell (au moins sur ma machine, je ne suis pas sûr que ce soit différent dans d'autres endroits). Il compte pour 2 octets dans le codage UTF8.Exemple d'utilisation, en supposant que cette chaîne est enregistrée dans un fichier nommé
es-sort.ps1
:la source
Mathematica, 81 octets
Même approche que la réponse de TimmyD.
la source
Python 2,
128116 octetsJ'ai toujours l'impression qu'il y a certainement matière à amélioration ici.
la source
Javascript, 95 octets
la source
Perl, 40 octets
Comprend +1 pour
-p
Exécutez avec la liste des mots sur STDIN:
spanisort.pl
la source