Ce défi est basé sur, et contient des cas de test, d' un cours de programmation que j'ai suivi à l'Université Aalto. Le matériel est utilisé avec permission.
Il y a deux ans et demi, il y avait un défi concernant les spoonerismes en anglais . Cependant, dans les spoonerismes finlandais sont beaucoup plus compliqués.
Spoonerismes en finnois
En finnois, les voyelles sont aeiouyäöet les consonnes le sont bcdfghjklmnpqrstvwxz. ( åfait techniquement partie du finnois, mais n'est pas considéré ici.)
Les cuillerées les plus élémentaires ne prennent que la première voyelle de chaque mot, et toutes les consonnes qui les précèdent, et échangent les parties:
henri kontinen -> konri hentinen
tarja halonen -> harja talonen
frakki kontti -> kokki frantti
ovi kello -> kevi olloVoyelles longues
Certains mots contiennent deux de la même voyelle consécutive. Dans ces cas, la paire de voyelles doit être échangée avec la première voyelle de l'autre mot, raccourcissant ou allongeant les voyelles pour garder la même longueur.
haamu kontti -> koomu hantti
kisko kaappi -> kasko kiippiDans le cas de deux voyelles consécutives différentes, cela ne s'applique pas:
hauva kontti -> kouva hantti
puoskari kontti -> kooskari punttiTrois ou plus de la même lettre consécutive n'apparaîtront pas dans l'entrée.
Harmonie vocalique
Le finnois a cette belle chose appelée harmonie des voyelles . Fondamentalement, cela signifie que les voyelles arrière aou et les voyelles avant äöy ne doivent pas apparaître dans le même mot.
Lorsque la permutation des voyelles avant ou arrière en un mot, toutes les voyelles de l'autre type dans le reste du mot devrait être changé pour correspondre au nouveau début du mot ( a <-> ä, o <-> ö, u <-> y):
köyhä kontti -> kouha köntti
hauva läähättää -> läyvä haahattaaeet isont neutres et peuvent apparaître avec toutes les autres lettres; les échanger en un mot ne doit pas entraîner de modifications dans le reste du mot.
Cas spéciaux
L'harmonie des voyelles ne s'applique pas à certains mots, y compris de nombreux mots de prêt et mots composés. Ces cas ne doivent pas être traités "correctement".
Défi
Étant donné deux mots, sortez les mots spoonerised.
Les mots saisis ne contiendront que les caractères a-zet äö. Vous pouvez choisir d'utiliser des majuscules ou des minuscules, mais votre choix doit être cohérent entre les mots et les entrées / sorties.
Les E / S peuvent être effectuées dans n'importe quel format pratique . (Les mots doivent être considérés comme des chaînes ou des tableaux de caractères.)
Il s'agit de code-golf , donc la solution la plus courte en octets l'emporte.
Cas de test
U+0308 COMBINING DIAERESISdevrait U+00E4 LATIN SMALL LETTER A WITH DIAERESIStrès bien fonctionner.)
                eet isont neutres, sont fihus keksy, huvu lehyet des lesmä prihtiréponses acceptables pour kehys fiksu, levy huhuet prisma lehtirespectivement?
                puoskari äyskäri --> äöskäri puuskari --> puoskari ääskäri.