Pig Latin

Pig Latin

Médio

Introdução

Os teus pais desafiaram-te a ti e ao teu irmão para um jogo de basquetebol dois contra dois. Convencidos de que vão ganhar, deixam-te marcar os primeiros pontos, mas depois começam a dominar o jogo. A precisar de um pequeno empurrão, começas a falar em Pig Latin, uma língua inventada de crianças que é difícil de entender para quem já não é criança. Assim vais ter vantagem para venceres os teus pais!

Instruções

A tua tarefa é traduzir texto de inglês para Pig Latin. A tradução é definida por quatro regras, que analisam o padrão de vogais e consoantes no início de uma palavra. Estas regras analisam a utilização de vogais e consoantes em cada palavra:

  • vogais: as letras a, e, i, o e u
  • consoantes: as outras 21 letras do alfabeto inglês

Regra 1

Se uma palavra começa com uma vogal, ou começa com "xr" ou "yt", acrescenta um som "ay" ao fim da palavra.

Por exemplo:

  • "apple" -> "appleay" (começa com vogal)
  • "xray" -> "xrayay" (começa com "xr")
  • "yttria" -> "yttriaay" (começa com "yt")

Regra 2

Se uma palavra começa com uma ou mais consoantes, move primeiro essas consoantes para o fim da palavra e, em seguida, acrescenta um som "ay" ao fim da palavra.

Por exemplo:

  • "pig" -> "igp" -> "igpay" (começa com uma única consoante)
  • "chair" -> "airch" -> "airchay" (começa com várias consoantes)
  • "thrush" -> "ushthr" -> "ushthray" (começa com várias consoantes)

Regra 3

Se uma palavra começa com zero ou mais consoantes seguidas de "qu", move primeiro essas consoantes (se existirem) e a parte "qu" para o fim da palavra e, em seguida, acrescenta um som "ay" ao fim da palavra.

Por exemplo:

  • "quick" -> "ickqu" -> "ickquay" (começa com "qu", sem consoantes antes)
  • "square" -> "aresqu" -> "aresquay" (começa com uma consoante seguida de "qu")

Regra 4

Se uma palavra começa com uma ou mais consoantes seguidas de "y", move primeiro as consoantes que precedem o "y" para o fim da palavra e, em seguida, acrescenta um som "ay" ao fim da palavra.

Alguns exemplos:

  • "my" -> "ym" -> "ymay" (começa com uma única consoante seguida de "y")
  • "rhythm" -> "ythmrh" -> "ythmrhay" (começa com várias consoantes seguidas de "y")
Editar via GitHub A ligação abre numa nova janela ou separador
Racket Exercism

Estás pronto para começar Pig Latin?

Inscreve-te no Exercism para aprenderes e dominares Racket com 84 exercícios, e mentoria humana real, tudo grátis.

Mergulha a fundo em Pig Latin!

Damos uma vista de olhos à correspondência de padrões e às expressões regulares, bem como a uma boa solução em Prolog, e perguntamos: resolveste o exercício ou limitaste-te a fazer passar os testes?