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!
A tua tarefa é traduzires 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:
a, e, i, o e u
Se uma palavra começa por uma vogal, ou começa por "xr" ou "yt", acrescenta um som "ay" ao fim da palavra.
Por exemplo:
"apple" -> "appleay" (começa por vogal)"xray" -> "xrayay" (começa por "xr")"yttria" -> "yttriaay" (começa por "yt")Se uma palavra começa por uma ou mais consoantes, move primeiro essas consoantes para o fim da palavra e acrescenta depois um som "ay" ao fim da palavra.
Por exemplo:
"pig" -> "igp" -> "igpay" (começa por uma única consoante)"chair" -> "airch" -> "airchay" (começa por várias consoantes)"thrush" -> "ushthr" -> "ushthray" (começa por várias consoantes)Se uma palavra começa por zero ou mais consoantes seguidas de "qu", move primeiro essas consoantes (se existirem) e a parte "qu" para o fim da palavra e acrescenta depois um som "ay" ao fim da palavra.
Por exemplo:
"quick" -> "ickqu" -> "ay" (começa por "qu", sem consoantes antes)"square" -> "aresqu" -> "aresquay" (começa por uma consoante seguida de "qu")Se uma palavra começa por uma ou mais consoantes seguidas de "y", move primeiro as consoantes que precedem o "y" para o fim da palavra e acrescenta depois um som "ay" ao fim da palavra.
Alguns exemplos:
"my" -> "ym" -> "ymay" (começa por uma única consoante seguida de "y")"rhythm" -> "ythmrh" -> "ythmrhay" (começa por várias consoantes seguidas de "y")Inscreve-te no Exercism para aprenderes e dominares Delphi Pascal com 76 exercícios, e mentoria humana real, tudo grátis.
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?