Pig Latin

Pig Latin

Media

Introducción

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!

Instrucciones

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:

  • vocales: las letras a, e, i, o y u
  • consonantes: las otras 21 letras del alfabeto inglés

Regla 1

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")

Regla 2

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)

Regla 3

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")

Regla 4

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")

Instrucciones específicas del track

Los bytes 64-319 de la memoria lineal están reservados para el string de entrada.

El string de entrada se puede modificar in situ si se desea.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
WebAssembly Exercism

¿Listo para empezar Pig Latin?

Regístrate en Exercism para aprender y dominar WebAssembly con 87 ejercicios y mentoría humana real, todo gratis.

¡Análisis en profundidad de Pig Latin!

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?