Questa sfida si basa e contiene casi di test di un corso di programmazione che ho seguito all'università di Aalto. Il materiale viene utilizzato con il permesso.
Due anni e mezzo fa c'è stata una sfida in inglese . Tuttavia, nei mungerismi finlandesi sono molto più complicati.
Spoonerismi in finlandese
In finlandese sono le vocali aeiouyäöe le consonanti lo sono bcdfghjklmnpqrstvwxz. ( åfa tecnicamente parte del finlandese, ma non è considerato qui.)
I spatolismi di base prendono solo la prima vocale di ogni parola e tutte le consonanti che le precedono e scambiano le parti:
henri kontinen -> konri hentinen
tarja halonen -> harja talonen
frakki kontti -> kokki frantti
ovi kello -> kevi ollo
Vocali lunghe
Alcune parole contengono due della stessa vocale consecutiva. In questi casi, la coppia di vocali deve essere scambiata con la prima vocale dell'altra parola, vocali accorciate o allungate per mantenere la stessa lunghezza.
haamu kontti -> koomu hantti
kisko kaappi -> kasko kiippi
Nel caso di due vocali consecutive diverse ciò non si applica:
hauva kontti -> kouva hantti
puoskari kontti -> kooskari puntti
Tre o più lettere della stessa lettera consecutiva non appariranno nell'input.
Armonia vocale
Il finlandese ha questa cosa adorabile chiamata armonia vocale . Fondamentalmente, significa che le vocali posteriori aou e le vocali anteriori äöy non dovrebbero apparire nella stessa parola.
Quando lo scambio di vocali anteriori o posteriori in una parola, tutte le vocali dell'altro genere nel resto della parola dovrebbero essere modificati in base al nuovo inizio della parola ( a <-> ä, o <-> ö, u <-> y):
köyhä kontti -> kouha köntti
hauva läähättää -> läyvä haahattaa
ee isono neutrali e possono apparire con tutte le altre lettere; scambiarli in una parola non deve causare modifiche al resto della parola.
Casi speciali
L'armonia vocale non si applica ad alcune parole, incluse molte parole di prestito e parole composte. Non è necessario che questi casi vengano gestiti "correttamente".
Sfida
Dato due parole, emette le parole spatolate.
Le parole di input conterranno solo i caratteri a-ze äö. Puoi scegliere di usare maiuscole o minuscole, ma la tua scelta deve essere coerente tra parole e input / output.
L'I / O può essere eseguito in qualsiasi formato conveniente . (Le parole dovrebbero essere considerate stringhe o matrici di caratteri.)
Questo è code-golf , quindi vince la soluzione più breve in byte.
Casi test
U+0308 COMBINING DIAERESISdovrebbe gestire U+00E4 LATIN SMALL LETTER A WITH DIAERESISbene.)
ee isono neutrali, sono fihus keksy, huvu lehye lesmä prihtirisposte accettabili per kehys fiksu, levy huhue prisma lehtirispettivamente?
puoskari äyskäri --> äöskäri puuskari --> puoskari ääskäri.