编写一个程序或函数,该程序或函数将以阶梯形式输出给定的字符串,并将以元音开头的单词的每个部分写在上一个部分的下一行。
例如:
Input: Programming Puzzles and Code Golf
Output: Pr P C G
ogr uzzl and od olf
amm es e
ing
输入值
一个仅包含字母和空格的字符串。
可以通过STDIN
或函数参数或任何等效参数传递字符串。
字母可以是小写或大写。
始终假定输入遵循这些规则,您无需检查输入是否不正确。
输出量
元音(即,每一次a
,e
,i
,o
,u
或y
)在遇到这个词,你必须输出到下一行(包括遇到元音)字的其余部分,在正确的水平位置。该规则是递归的,这意味着如果单词中有n个元音,它将被写在n + 1行上。
元音应该写在下一行的开头,而不是在遇到前一行的末尾。
每个单词都从第一行开始,因此应独立于其他单词设置格式。两个词用空格隔开。
如果单词以元音开头,则必须从第二行开始写出来。
测试用例
- 输入:
Programming Puzzles and Code Golf
输出:
Pr P C G
ogr uzzl and od olf
amm es e
ing
- 输入:
The quick brown fox jumps over the lazy dog
输出:
Th q br f j th l d
e u own ox umps ov e az og
ick er y
- 输入:
aeiouy
输出:
a
e
i
o
u
y
- 输入:
YEAh UppErcAsE VOwEls
输出:
V
Y Upp Ow
E Erc Els
Ah As
E
- 输入:
If you only knew the power of the Dark Side
输出:
kn th p th D S
If y onl ew e ow of e ark id
o y er e
u
计分
这是代码高尔夫球,因此最短的代码获胜。
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.
经过一番思考,我了解到这意味着移至下一行应该在元音打印之前进行,而不是在之后进行,但是值得以一种可以立即理解的方式来措辞,这花了我一段时间。