Для тех, кто желает намного больше испытаний, чем старый испанский алфавитный порядок , давайте посмотрим, как упорядочен венгерский алфавит.
a, á, b, c, cs, d, dz, dzs, e, é, f, g, gy, h, i, í, j, k, l, ly, m, n, ny, o, ó, ö, ő, p, q, r, s, sz, t, ty, u, ú, ü, ű, v, w, x, y, z, zs
на самом деле, q
, w
, x
и y
не используются в венгерских слов, но они включены в заимствованных и иностранных имен. Иностранные акцентированные символы, которые не являются частью венгерского алфавита (например ñ
), имеют тот же приоритет, что и неакцентированные, но мы игнорируем их для этой задачи.
Правила обобщены:
- Диграфы (
cs
,sz
и т. Д.) И триграф (dzs
) рассматриваются как самостоятельные буквы.
cudar cukor cuppant csalit csata
- Если же орграф или триграф происходит дважды непосредственно друг за другом в слове, они написаны в упрощенном виде:
ssz
вместо тогоszsz
,ddzs
вместо того ,dzsdzs
но в алфавитном порядке используется не упростили порядок. Напримерkasza
<kaszinó
<kassza
, так какkassza
используется какk
+a
+sz
+sz
+a
ради упорядочения. Иногда вы можете найти несокращенную версию в слове, в случае составных слов.
kasza kaszinó kassza kaszt nagy naggyá nagygyakorlat naggyal nagyít
- использование заглавных букв не имеет значения, за исключением случаев, когда два слова были бы совершенно одинаковыми без использования заглавных букв, и в этом случае строчная буква имеет приоритет
jácint Jácint Zoltán zongora
- Короткие и длинные версии акцентированных гласными имеют одинаковый приоритет (
a - á
,e -é
,i - í
,o - ó
,ö - ő
,u - ú
ü - ű
), с одним исключением: если два слова , иначе было бы точно так же, короткий гласный имеет приоритет над долгими гласными. Обратите внимание, что гласные с умлаутом (ö
иü
) - это совершенно разные символы отo
иu
.
Eger egér író iroda irónia kerek kerék kérek szúr szül
- Дефисы или пробелы (например, в составных словах, именах и т. Д.) Полностью игнорируются
márvány márványkő márvány sírkő Márvány-tenger márványtömb
Задание
Ваша программа / функция получает строки, состоящие из символов венгерского алфавита (как в нижнем, так и в верхнем регистре), но строка может содержать пробелы или дефисы. Для простоты знак минус (ASCII 45) можно использовать в качестве дефиса. Обратите внимание, что некоторые символы (такие как ő
) не являются частью ASCII. Вы можете использовать любую кодировку, если пожелаете, если она поддерживает все необходимые символы.
Вы должны правильно упорядочить строки и отобразить / вернуть результат.
Вы можете использовать любое произвольно упорядоченное подмножество приведенных выше примеров для тестирования.
РЕДАКТИРОВАТЬ:
Пожалуйста, не используйте какой-либо встроенный или другой способ, который уже знает венгерский алфавитный порядок самостоятельно. Это сделало бы соревнование бессмысленным и взяло бы на себя все трудности, связанные с поиском лучшего регулярного выражения или лучших трюков в коде.
EDIT2:
Чтобы очистить пояснение, заданное isaacg: «две строки, которые отличаются только заглавными буквами и длинными и короткими гласными, но различаются в обоих направлениях»: хотя ни одно из правил в официальном документе явно не решает этот вопрос, пример можно найти в точках длины гласного, имеющего большее значение, чем капитализация.
malacsült
или nyílászáró
. Интересно, есть ли они (но вам понадобится словарный запас, чтобы проверить это, что, по-видимому, не является частью этой задачи)