Для тих, хто бажає набагато більше викликів, ніж старий іспанський алфавітний порядок , давайте подивимось, як упорядкований угорський алфавіт.
a, á, b, c, cs, d, dz, dss, 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 - ú
ü - ű
), з одним винятком: якщо два слова , інакше було б точно так же, короткий голосний має пріоритет над довгими голосними. Зауважте, що голосні звуки з umlaut (ö
іü
) є абсолютно різними символами від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ó
. Цікаво, чи є такі (але для цього вам потрібен словник, який, мабуть, не є частиною цього виклику)