Escriba un programa o una función que generará una cadena dada en forma de escalera, escribiendo cada parte de una palabra que comienza con una vocal una línea debajo de la parte anterior.
Por ejemplo:
Input: Programming Puzzles and Code Golf
Output: Pr P C G
ogr uzzl and od olf
amm es e
ing
Entrada
Una cadena que no contiene más que letras y espacios.
La cadena se puede pasar a través de STDIN
argumentos de función o algo equivalente.
Las letras pueden ser minúsculas o mayúsculas.
Siempre se supone que las entradas siguen esas reglas, no es necesario verificar las entradas incorrectas.
Salida
Cada vez que una vocal (es decir, a
, e
, i
, o
, u
o y
) se encuentra en una palabra, debe emitir el resto de la palabra en la línea siguiente (la vocal encontrado incluido), en la posición horizontal correcta. Esta regla es recursiva, lo que significa que si hay n vocales en la palabra, se escribirá en n + 1 líneas.
La vocal debe escribirse al comienzo de la siguiente línea, y no al final de la línea anterior cuando se encuentra una.
Cada palabra comienza en la primera línea y, por lo tanto, debe formatearse independientemente de otras palabras. Dos palabras están separadas por un espacio.
Si una palabra comienza con una vocal, debe escribirla comenzando en la segunda línea.
Casos de prueba
- Entrada:
Programming Puzzles and Code Golf
Salida:
Pr P C G
ogr uzzl and od olf
amm es e
ing
- Entrada:
The quick brown fox jumps over the lazy dog
Salida:
Th q br f j th l d
e u own ox umps ov e az og
ick er y
- Entrada:
aeiouy
Salida:
a
e
i
o
u
y
- Entrada:
YEAh UppErcAsE VOwEls
Salida:
V
Y Upp Ow
E Erc Els
Ah As
E
- Entrada:
If you only knew the power of the Dark Side
Salida:
kn th p th D S
If y onl ew e ow of e ark id
o y er e
u
Tanteo
Este es el código de golf , por lo que gana el código más corto.
The vowel should be written at the beginning of the next line, and not at the end of the previous line when one is encountered.
Después de pensarlo, entiendo que esto significa que el movimiento a la siguiente línea debe ocurrir antes de que se imprima la vocal, no después, pero puede valer la pena redactar esto de una manera que sea comprensible al instante: me llevó un tiempo.