Rimas de vogais: Maçãs e Bananas
Há uma música infantil tradicional que repete o mesmo texto repetidamente, apenas a cada vez que cada vogal é substituída por uma vogal aleatória, mas constante na estrofe atual.
Desafio
O objetivo é propor o código mais curto que executa essa transformação em um texto de entrada.
Regras
- Você deve imprimir a rima quantas vezes houver vogais distintas.
- Cada impressão deve ser separada com uma quebra de linha (combinação específica da plataforma
\n
e\r
é aceita). - Para iteração
i
, substitua cada vogal pelai
th vogal distinta no texto original. - O texto de entrada é uma sequência de caracteres ASCII imprimíveis (intervalo
[32, 126]
. - A entrada não conterá quebras de linha incorporadas.
- Somente caracteres de vogais devem ser afetados, outros devem ser exibidos exatamente como entrada.
- Somente os caracteres das vogais contam: as vogais nasais, embora pareçam vogais (como no francês "Tintin" ), não devem ser tratadas como uma única vogal.
- O caso é importante para a saída, mas é posicional (a substituição de uma vogal maiúscula é feita pela vogal de substituição maiúscula)
- As vogais em maiúsculas não são distintas de suas contrapartes em minúsculas (ou seja,
a
<=>A
) - As vogais consecutivas são sempre consideradas separadamente (isto é,
Boat
produz ambosBoot
eBaat
) - Como a carta
y
representa uma vogal ou consoante soun (como estamos falando em inglês), é permitido manipulá-la como vogal ou consoante, no entanto, as respostas devem declarar explicitamente se tratamy
como vogal ou não.
Exemplos:
Olá Mundo
Hello world!
dá:
Helle werld!
Hollo world!
Trecho do texto original em francês (traduzido), y
tratado como vogal:
An elephant that was rambling all gently in the woods...
dá:
An alaphant that was ramblang all gantla an tha waads...
En elephent thet wes rembleng ell gentle en the weeds...
In iliphint thit wis rimbling ill gintli in thi wiids...
Yn ylyphynt thyt wys rymblyng yll gyntly yn thy wyyds...
On olophont thot wos romblong oll gontlo on tho woods...
Observe o comportamento da vogal maiúscula inicial: case é mantido em seu índice (regras 8 e 9).
Exemplo de vogal
Entrada que não contém nenhuma vogal, como:
lgn@hst:~$ rm -rf ./* ~ /
não deve produzir saída ou uma única quebra de linha.
Entrada de vogal única
A entrada que contém uma única vogal é emitida como está.
Dad sat at a car and saw a fat bat.
dá:
Dad sat at a car and saw a fat bat.
Este é o código-golfe , o menor número de códigos do número de vitórias (nada além da glória eterna do PPCG)!
Ruby , 78 bytes
Experimente online!
Uma abordagem rápida e ingênua. Y não é considerado uma vogal.
fonte
bash, 96 bytes
Duas soluções de igual comprimento:
Experimente online!
Aceita entrada como argumento de linha de comando e gera saída para STDOUT.
fonte
05AB1E (herdado) , 19 bytes
(Indiretamente) economizou um byte graças a Kevin (imprimir diretamente dentro do loop em vez de ingressar, apenas funciona na versão herdada).
Experimente online!
Usando a reescrita do Elixir, 20 bytes
Experimente online! (sem
y
) | Experimente online! (comy
,žM
sendo substituído poržO
- o mesmo se aplica à versão herdada)Como funciona
fonte
y
também deve usar em6
vez de5
, btw.y
versão -vogal, copiei acidentalmente o link TIO errado quando respondi: | ...i
código. Sua resposta falha para entradas sem vogais. Esperado é uma saída vazia, mas imprime efectivamente a entrada em si .. :(Japt v2.0a0
-R
,2422 bytesTrata
y
como uma vogal. Alterar ambas as ocorrências\y
da\v
tratá-la como uma consoante.Tente
Explicação
fonte
Gelatina ,
23 20 1817 bytes-2 Graças a Erik, o Outgolfer
Para tratar
y
como vogal, substituac
s pory
s.Experimente online!
Quão?
fonte
ż/
em um par éZ
, duas díades em uma fileira, onde o esquerdo está desemparelhado em um mônade têm o argumento no meio implicitamente)Z
> _ <), não tenho certeza do que estava acontecendo com a minha sessão de TIO, mas remover o redundanteð
não estava funcionando; reiniciar fixo.x€
→x
, mas você me ninja. : PVermelho , 229 bytes
Tomando
y
por uma não vogalExperimente online!
Um pouco mais legível:
fonte
R ,
138, 129 bytesExperimente online!
y
não é considerado uma vogalfonte
Python,
129119112 bytesExperimente Online!
Não tratay como vogal.
-7 bytes graças a @ Mr.Xcoder
fonte
JavaScript (Node.js) , 99 bytes
Tratay como consoante.
Experimente online!
Comentado
fonte
Java 10,
196188 bytes-8 bytes graças a @ joH1 .
Sem
y
como vogal para salvar bytes.Experimente online.
Explicação:
fonte
v
no loopPython 2 , 112 bytes
Experimente online!
Trata
y
como uma consoante.fonte
Perl 6 , 64 bytes
Experimente online!
fonte
Java (OpenJDK 8) , 184 bytes
y é uma vogal
Experimente online!
fonte