Rima de las vocales: manzanas y plátanos
Hay una canción tradicional para niños que repite el mismo texto una y otra vez, solo que cada vocal se reemplaza con una vocal aleatoria, pero constante a través de la estrofa actual.
Desafío
El objetivo es proponer el código más corto que realice dicha transformación en un texto de entrada.
Reglas
- Debes imprimir la rima tantas veces como haya vocales distintas.
- Cada impresión debe separarse con un salto de línea ( se acepta una combinación de plataforma específica de
\n
y\r
). - Para la iteración
i
, reemplace cada vocal con lai
th vocal distinta en el texto original. - El texto de entrada es una secuencia de caracteres ASCII imprimibles (rango
[32, 126]
. - La entrada no contendrá saltos de línea incrustados.
- Solo los caracteres vocales deben verse afectados, otros deben ser emitidos exactamente como entrada.
- Solo los caracteres de las vocales cuentan: las vocales nasales, aunque suenen como vocales (como en francés "Tintín" ), no deben manejarse como una sola vocal.
- El caso es importante para la salida, pero es posicional (la sustitución de una vocal en mayúscula se realiza con la vocal de reemplazo en mayúscula)
- Las vocales en mayúsculas no son distintas de su contraparte en minúsculas (es decir,
a
<=>A
) - Las vocales consecutivas siempre se consideran por separado (es decir,
Boat
produce ambosBoot
yBaat
) - Dado que la letra
y
representa una vocal o un sonido de consonante (como estamos hablando en inglés), se permite manejarla como vocal o consonante, sin embargo, las respuestas deben indicar explícitamente si se manejany
como vocal o no.
Ejemplos:
Hola Mundo
Hello world!
da:
Helle werld!
Hollo world!
Extracto del texto original en francés (traducido), y
manejado como vocal:
An elephant that was rambling all gently in the woods...
da:
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...
Tenga en cuenta el comportamiento de la vocal mayúscula principal: el caso se mantiene en su índice (reglas 8 y 9).
Ejemplo sin vocales
Entrada que no contiene ninguna vocal, como:
lgn@hst:~$ rm -rf ./* ~ /
no debe producir salida o un solo salto de línea.
Entrada de vocal simple
La entrada que contiene una sola vocal se emite como está.
Dad sat at a car and saw a fat bat.
da:
Dad sat at a car and saw a fat bat.
Este es el código de golf , ¡por lo que gana menos código bytecount (nada más que la eterna gloria PPCG)!
Ruby , 78 bytes
Pruébalo en línea!
Un enfoque rápido e ingenuo. Y no se considera una vocal.
fuente
bash, 96 bytes
Dos soluciones de igual longitud:
Pruébalo en línea!
Toma la entrada como un argumento de línea de comando y las salidas a STDOUT.
fuente
05AB1E (legado) , 19 bytes
(Indirectamente) guardó un byte gracias a Kevin (imprimir directamente dentro del bucle en lugar de unirse, solo funciona en la versión heredada).
Pruébalo en línea!
Usando la reescritura de Elixir, 20 bytes
Pruébalo en línea! (sin
y
) | Pruébalo en línea! (cony
,žM
siendo reemplazado poržO
- lo mismo aplica para la versión heredada)Cómo funciona
fuente
y
también debe usar en6
lugar de5
, por cierto.y
versión -vowel, copié accidentalmente el enlace TIO incorrecto cuando respondí: | ...i
código. Su respuesta falla para entradas sin vocales. Se espera una salida vacía, pero en realidad imprime la entrada en sí ... :(Japt v2.0a0
-R
,2422 bytesSe trata
y
como una vocal. Cambie ambas ocurrencias de\y
to\v
para tratarlo como una consonante.Intentalo
Explicación
fuente
Gelatina ,
23 20 1817 bytes-2 Gracias a Erik the Outgolfer
Para tratar
y
como vocal, reemplace ambasc
s cony
s.Pruébalo en línea!
¿Cómo?
fuente
ż/
en un parZ
, dos díadas seguidas donde el izquierdo no está emparejado en una mónada tienen el argumento implícito)Z
> _ <), no estoy seguro de lo que estaba pasando con mi sesión de TIO, pero eliminar el redundanteð
no funcionaba; reinicio fijo.x€
→x
también, pero tú me ninja. : PRojo , 229 bytes
Tomar
y
por una no vocalPruébalo en línea!
Ligeramente más legible:
fuente
R ,
138, 129 bytesPruébalo en línea!
y
no se considera una vocalfuente
Python,
129119112 bytesPruébalo en línea!
-7 bytes gracias a @ Mr.Xcoder
fuente
JavaScript (Node.js) , 99 bytes
Pruébalo en línea!
Comentado
fuente
Java 10,
196188 bytes-8 bytes gracias a @ joH1 .
Sin
y
como vocal para guardar bytes.Pruébalo en línea.
Explicación:
fuente
v
en el buclePython 2 , 112 bytes
Pruébalo en línea!
Se trata
y
como una consonante.fuente
Perl 6 , 64 bytes
Pruébalo en línea!
fuente
Java (OpenJDK 8) , 184 bytes
y es una vocal
Pruébalo en línea!
fuente