Schreiben Sie ein Programm oder eine Funktion, die eine bestimmte Zeichenfolge treppenförmig ausgibt, indem Sie jeden Teil eines Wortes schreiben, der mit einem Vokal eine Zeile unter dem vorherigen Teil beginnt.
Beispielsweise:
Input: Programming Puzzles and Code Golf
Output: Pr P C G
ogr uzzl and od olf
amm es e
ing
Eingang
Eine Zeichenfolge, die nur Buchstaben und Leerzeichen enthält.
Die Zeichenfolge kann über STDIN
oder Funktionsargumente oder etwas Äquivalentes übergeben werden.
Buchstaben können in Klein- oder Großbuchstaben geschrieben werden.
Es wird immer davon ausgegangen, dass Eingaben diesen Regeln entsprechen. Sie müssen nicht nach falschen Eingaben suchen.
Ausgabe
Jedes Mal , wenn ein Vokal (das heißt, a
, e
, i
, o
, u
oder y
) in einem Wort auftritt, müssen Sie Ausgang des Rest des Wortes in der nächsten Zeile (die auftretenden Vokal enthalten), in der richtigen horizontalen Position. Diese Regel ist rekursiv, dh wenn das Wort n Vokale enthält, wird es in n + 1 Zeilen geschrieben.
Der Vokal sollte am Anfang der nächsten Zeile und nicht am Ende der vorherigen Zeile geschrieben werden, wenn einer auftritt.
Jedes Wort beginnt in der ersten Zeile und sollte daher unabhängig von anderen Wörtern formatiert werden. Zwei Wörter werden durch ein Leerzeichen getrennt.
Wenn ein Wort mit einem Vokal beginnt, müssen Sie es in der zweiten Zeile beginnen.
Testfälle
- Eingang:
Programming Puzzles and Code Golf
Ausgabe:
Pr P C G
ogr uzzl and od olf
amm es e
ing
- Eingang:
The quick brown fox jumps over the lazy dog
Ausgabe:
Th q br f j th l d
e u own ox umps ov e az og
ick er y
- Eingang:
aeiouy
Ausgabe:
a
e
i
o
u
y
- Eingang:
YEAh UppErcAsE VOwEls
Ausgabe:
V
Y Upp Ow
E Erc Els
Ah As
E
- Eingang:
If you only knew the power of the Dark Side
Ausgabe:
kn th p th D S
If y onl ew e ow of e ark id
o y er e
u
Wertung
Das ist Code-Golf , also gewinnt der kürzeste Code.
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.
Nach einigem Nachdenken habe ich verstanden, dass dies bedeutet, dass der Übergang zur nächsten Zeile erfolgen sollte, bevor der Vokal gedruckt wird, nicht danach, aber es könnte sich lohnen, dies so zu formulieren, dass es sofort verständlich ist - es hat eine Weile gedauert.