Scrivi un programma o una funzione che produrrà una determinata stringa in una scala, scrivendo ogni parte di una parola che inizia con una vocale una riga sotto la parte precedente.
Per esempio:
Input: Programming Puzzles and Code Golf
Output: Pr P C G
ogr uzzl and od olf
amm es e
ing
Ingresso
Una stringa contenente nient'altro che lettere e spazi.
La stringa può essere passata tramite STDIN
o argomenti di funzione o qualcosa di equivalente.
Le lettere possono essere minuscole o maiuscole.
Si presume sempre che gli input seguano tali regole, non è necessario verificare la presenza di input errati.
Produzione
Ogni volta che una vocale (che è, a
, e
, i
, o
, u
o y
) si incontra in una parola, è necessario emettere il resto della parola nella riga successiva (la vocale incontrato inclusa), alla corretta posizione orizzontale. Questa regola è ricorsiva, il che significa che se ci sono n vocali nella parola, sarà scritta su n + 1 righe.
La vocale dovrebbe essere scritta all'inizio della riga successiva e non alla fine della riga precedente quando ne viene incontrata una.
Ogni parola inizia sulla prima riga e deve quindi essere formattata indipendentemente dalle altre parole. Due parole sono separate da uno spazio.
Se una parola inizia con una vocale, devi scriverla a partire dalla seconda riga.
Casi test
- Ingresso:
Programming Puzzles and Code Golf
Produzione:
Pr P C G
ogr uzzl and od olf
amm es e
ing
- Ingresso:
The quick brown fox jumps over the lazy dog
Produzione:
Th q br f j th l d
e u own ox umps ov e az og
ick er y
- Ingresso:
aeiouy
Produzione:
a
e
i
o
u
y
- Ingresso:
YEAh UppErcAsE VOwEls
Produzione:
V
Y Upp Ow
E Erc Els
Ah As
E
- Ingresso:
If you only knew the power of the Dark Side
Produzione:
kn th p th D S
If y onl ew e ow of e ark id
o y er e
u
punteggio
Questo è code-golf , quindi vince il codice più 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.
Dopo aver riflettuto un po ', capisco che questo significa che il passaggio alla riga successiva dovrebbe avvenire prima che la vocale venga stampata, non dopo, ma potrebbe valere la pena di formularla in un modo immediatamente comprensibile - mi ci è voluto un po'.