Цей виклик ґрунтується на тестах з програмування, які я пройшов в університеті Аалто та містить його тестові приклади . Матеріал використовується з дозволу.
Два з половиною роки тому був виклик щодо спонсеризмів англійською мовою . Однак у фінських спонерізми набагато складніші.
Спонсоризми фінською мовою
У фінській aeiouyäöмові голосні є, а приголосні - bcdfghjklmnpqrstvwxz. ( åтехнічно є частиною фінської, але тут не розглядається.)
Найбільш основні спонсеризми приймають лише першу голосну частину кожного слова та будь-які приголосні, що передують їм, та обмінюються частинами:
henri kontinen -> konri hentinen
tarja halonen -> harja talonen
frakki kontti -> kokki frantti
ovi kello -> kevi ollo
Довгі голосні
Деякі слова містять два однакових послідовних голосних. У цих випадках пару голосних потрібно замінити першою голосною іншого слова, скорочуючи або подовжуючи голосні, щоб зберегти однакову довжину.
haamu kontti -> koomu hantti
kisko kaappi -> kasko kiippi
У разі двох різних послідовних голосних це не стосується:
hauva kontti -> kouva hantti
puoskari kontti -> kooskari puntti
Три або більше таких самих послідовних листів не відображатимуться на вводі.
Гармонія голосних
У фінській є ця прекрасна річ, яка називається гармонією голосних . В основному це означає, що задні голосні aou та передні голосні äöy не повинні міститися в одному слові.
Коли заміна передніх або задніх голосних звуків в слові, всі голосні іншого роду в іншій частині слова повинні бути змінені відповідно до нового початок слова ( a <-> ä, o <-> ö, u <-> y):
köyhä kontti -> kouha köntti
hauva läähättää -> läyvä haahattaa
eі iвони нейтральні і можуть з’являтися з усіма іншими літерами; заміна їх на слово не повинна спричиняти змін до решти слова.
Особливі випадки
Гармонія голосних не поширюється на деякі слова, включаючи багато позитивних слів і складні слова. Ці справи не потрібно розбирати "правильно".
Виклик
Давши два слова, виведіть слова спонсоровані.
Введені слова містять лише символи a-zта äö. Ви можете скористатися великими або малими літерами, але ваш вибір повинен відповідати як словам, так і введенням / вихідним.
Введення / виведення може бути виконано у будь-якому зручному форматі . (Слова слід вважати рядками або масивами символів.)
Це код-гольф , тому найкоротше рішення в байтах виграє.
Тестові справи
U+0308 COMBINING DIAERESISмає справлятися U+00E4 LATIN SMALL LETTER A WITH DIAERESISчудово.)
eі iє нейтральними, є fihus keksy, huvu lehyі lesmä prihtiприйнятні відповіді на kehys fiksu, levy huhuі , prisma lehtiвідповідно?
puoskari äyskäri --> äöskäri puuskari --> puoskari ääskäri.