Tus padres os han desafiado a ti y a tu hermano o hermana a un partido de baloncesto dos contra dos. Seguros de que ganarán, os dejan anotar los primeros puntos, pero luego empiezan a hacerse con el control del partido. Como necesitáis un pequeño empujón, empezáis a hablar en Pig Latin, un lenguaje infantil inventado que a los que ya no son niños les cuesta entender. ¡Así tendréis la ventaja necesaria para imponeros a vuestros padres!
Tu tarea consiste en traducir texto del inglés a Pig Latin. La traducción se define con cuatro reglas, que se fijan en el patrón de vocales y consonantes al principio de una palabra. Estas reglas atienden al uso de vocales y consonantes de cada palabra:
a, e, i, o y u
Si una palabra empieza por vocal, o empieza por "xr" o "yt", añade un sonido "ay" al final de la palabra.
Por ejemplo:
"apple" -> "appleay" (empieza por vocal)"xray" -> "xrayay" (empieza por "xr")"yttria" -> "yttriaay" (empieza por "yt")Si una palabra empieza por una o más consonantes, mueve primero esas consonantes al final de la palabra y después añade un sonido "ay" al final de la palabra.
Por ejemplo:
"pig" -> "igp" -> "igpay" (empieza por una sola consonante)"chair" -> "airch" -> "airchay" (empieza por varias consonantes)"thrush" -> "ushthr" -> "ushthray" (empieza por varias consonantes)Si una palabra empieza por cero o más consonantes seguidas de "qu", mueve primero esas consonantes (si las hay) y la parte "qu" al final de la palabra, y después añade un sonido "ay" al final de la palabra.
Por ejemplo:
"quick" -> "ickqu" -> "ickquay" (empieza por "qu", sin consonantes delante)"square" -> "aresqu" -> "aresquay" (empieza por una consonante seguida de "qu")Si una palabra empieza por una o más consonantes seguidas de "y", mueve primero las consonantes que preceden a la "y" al final de la palabra y después añade un sonido "ay" al final de la palabra.
Algunos ejemplos:
"my" -> "ym" -> "ymay" (empieza por una sola consonante seguida de "y")"rhythm" -> "ythmrh" -> "ythmrhay" (empieza por varias consonantes seguidas de "y")Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.
Echamos un vistazo a la coincidencia de patrones y a las expresiones regulares, además de a una bonita solución en Prolog, y nos preguntamos: ¿has resuelto el ejercicio o solo has hecho que pasen los tests?