Este desafío se basa y contiene casos de prueba de un curso de programación que tomé en la Universidad de Aalto. El material se usa con permiso.
Hace dos años y medio hubo un desafío sobre los cucharares en inglés . Sin embargo, en finlandeses los cucharares son mucho más complicados.
Spoonerisms en finlandés
En finlandés, las vocales son aeiouyäöy las consonantes son bcdfghjklmnpqrstvwxz. ( åtécnicamente es parte del finlandés, pero no se considera aquí).
Los cucharares más básicos solo toman la primera vocal de cada palabra y las consonantes que las preceden, e intercambian las partes:
henri kontinen -> konri hentinen
tarja halonen -> harja talonen
frakki kontti -> kokki frantti
ovi kello -> kevi ollo
Vocales largas
Algunas palabras contienen dos de la misma vocal consecutiva. En esos casos, el par de vocales debe intercambiarse con la primera vocal de la otra palabra, acortando o alargando las vocales para mantener la misma longitud.
haamu kontti -> koomu hantti
kisko kaappi -> kasko kiippi
En el caso de dos vocales consecutivas diferentes, esto no se aplica:
hauva kontti -> kouva hantti
puoskari kontti -> kooskari puntti
Tres o más de la misma letra consecutiva no aparecerán en la entrada.
Armonía vocal
El finlandés tiene esta cosa encantadora llamada armonía vocal . Básicamente, significa que las vocales posteriores aou y las delanteras äöy no deberían aparecer en la misma palabra.
Cuando el canje de vocales delanteras o traseras en una palabra, todas las vocales de otro tipo en el resto de la palabra debe ser cambiado para que coincida con el nuevo comienzo de la palabra ( a <-> ä, o <-> ö, u <-> y):
köyhä kontti -> kouha köntti
hauva läähättää -> läyvä haahattaa
ey ison neutrales y pueden aparecer con todas las demás letras; intercambiarlos en una palabra no debe causar cambios en el resto de la palabra.
Casos especiales
La armonía vocal no se aplica a algunas palabras, incluidas muchas palabras prestadas y palabras compuestas. No es necesario que estos casos se manejen "correctamente".
Desafío
Dadas dos palabras, da salida a las palabras en cuchara.
Las palabras de entrada solo contendrán los caracteres a-zy äö. Puede elegir usar mayúsculas o minúsculas, pero su elección debe ser coherente entre ambas palabras y entrada / salida.
La E / S se puede hacer en cualquier formato conveniente . (Las palabras deben considerarse cadenas o matrices de caracteres).
Este es el código de golf , por lo que gana la solución más corta en bytes.
Casos de prueba
U+0308 COMBINING DIAERESISdebería funcionar U+00E4 LATIN SMALL LETTER A WITH DIAERESISbien).
ey ison neutros, son fihus keksy, huvu lehyy lesmä prihtirespuestas aceptables para kehys fiksu, levy huhuy prisma lehti, respectivamente?
puoskari äyskäri --> äöskäri puuskari --> puoskari ääskäri.