До 1994 года , испанский словари используется алфавитный порядок с особенностью : диграфов ll
и ch
рассматривались , как если бы они были отдельные буквы. ch
немедленно следовал c
, и ll
немедленно следовал l
. Если добавить письмо ñ
, которое следует n
на испанском, то порядок был:
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
Начиная с 1994 годом ll
и ch
рассматриваются как группы из двух букв ( l
, l
и c
, h
соответственно), и , таким образом алфавитного порядка так же , как на английском языке, за исключением письма ñ
.
Старый порядок был определенно интереснее .
Соревнование
Введите список из нуля или более слов и выведите список, отсортированный по старому испанскому алфавитному порядку. Сортировка происходит между словами (не между буквами в слове). То есть слова являются атомарными, и выходные данные будут содержать одни и те же слова в возможно другом порядке.
Для упрощения, мы не будем рассматривать письмо ñ
, или акцентированные гласные á
, é
, í
, ó
, ú
, или прописные буквы. Каждое слово будет представлять собой последовательность из одного или нескольких символов, взятых из включающего диапазона от ASCII 97 ( a
) до ASCII 122 ( z
).
Если l
в строке более двух букв, они должны быть сгруппированы слева направо. То есть lll
есть ll
и тогда l
(а не l
потом ll
).
Формат ввода может быть: слова, разделенные пробелами, символами новой строки или любым удобным символом. Слова могут быть заключены в кавычки или нет, по вашему выбору. Список или массив слов также приемлем. Любой разумный формат действителен; просто укажите это в своем ответе.
Аналогичным образом, вывод будет в любом приемлемом формате (не обязательно совпадает с вводом).
Код гольф, самые короткие выигрыши.
Контрольные примеры
В следующих примерах слова разделяются пробелами. Первая строка - это ввод, вторая -:
llama coche luego cocina caldo callar calma
caldo calma callar cocina coche luego llama
cuchara cuchillo cubiertos cuco cueva
cubiertos cuco cuchara cuchillo cueva
«Слова» тоже могут быть отдельными буквами:
b c a ch ll m l n
a b c ch l ll m n
или маловероятные комбинации (помните правило, l
сгруппированное слева направо):
lll llc llz llll lllz
llc lll lllz llll llz
Пустой вход должен дать пустой вывод:
Конечно, этот порядок может быть применен и к другим языкам:
chiaro diventare cucchiaio
cucchiaio chiaro diventare
all alternative almond at ally a amber
a almond alternative all ally amber at
rr
ни одного письма ; по крайней мере, с 1803 года. Но это правда, что, очевидно, это считалось одной буквой в АмерикеОтветы:
Pyth,
1413 байтовОбновление: видел, что это было принято, и заметил тривиальный 1-байтовый гольф. Упс.
Попробуйте онлайн. Тестирование.
Для каждого слова найдите все непересекающиеся совпадения для регулярного выражения
ll|ch|.
. Это разбивает слово на «буквы». Затем просто отсортируйте слова по разделенным спискам.источник
:D
PowerShell,
46445150 байтΑ
Характер греческой буквы альфа , которая в прибывает после всех букв латинского алфавита в порядке сортировки по умолчанию PowerShell (по крайней мере , на моей машине, я не уверен , если он отличается в других местах). Это считается как 2 байта в кодировке UTF8.Пример использования, при условии, что эта строка сохранена в файле с именем
es-sort.ps1
:источник
Mathematica, 81 байт
Тот же подход, что и в ответе TimmyD.
источник
Python 2,
128116 байтовЯ все еще чувствую, что здесь определенно есть место для улучшения.
источник
Javascript, 95 байт
источник
Perl, 40 байт
Включает +1 для
-p
Запустите со списком слов на STDIN:
spanisort.pl
источник