Belirli bir dizgeyi merdiven biçiminde çıkaran bir program ya da bir işlev yazın, bir kelimenin her bir bölümünü bir önceki bölümün altında bir sesli harfle başlayan bir harfle yazın.
Örneğin:
Input: Programming Puzzles and Code Golf
Output: Pr P C G
ogr uzzl and od olf
amm es e
ing
Giriş
Harf ve boşluk dışında hiçbir şey içermeyen bir dize.
Dize, STDIN
işlev argümanları veya eşdeğer herhangi bir şey aracılığıyla iletilebilir .
Harfler küçük veya büyük harf olabilir.
Girdilerin her zaman bu kuralları takip ettiği varsayılır, yanlış girdileri kontrol etmeniz gerekmez.
Çıktı
Sesli harf (olduğunu, her zaman a
, e
, i
, o
, u
veya y
) bir kelime karşılaşıldığında yapmanız gerekir çıktısı doğru yatay pozisyonda sonraki satıra (karşılaşılan sesli harf dahil) üzerinde kelimenin kalanı. Bu kural özyinelemelidir, bu, kelimede hiç ünlü olmadığında, n + 1 satırlarına yazılacağı anlamına gelir.
Ünlü harf, bir sonraki satırın başında yazılmalıdır, önceki satırın sonuna yazılmadan yazılmamalıdır.
Her kelime ilk satırda başlar ve bu nedenle diğer kelimelerden bağımsız olarak biçimlendirilmelidir. İki kelime bir boşlukla ayrılır.
Bir kelime sesli harfle başlarsa, ikinci satırdan başlayarak yazmak zorundasınız.
Test durumları
- Giriş:
Programming Puzzles and Code Golf
Çıktı:
Pr P C G
ogr uzzl and od olf
amm es e
ing
- Giriş:
The quick brown fox jumps over the lazy dog
Çıktı:
Th q br f j th l d
e u own ox umps ov e az og
ick er y
- Giriş:
aeiouy
Çıktı:
a
e
i
o
u
y
- Giriş:
YEAh UppErcAsE VOwEls
Çıktı:
V
Y Upp Ow
E Erc Els
Ah As
E
- Giriş:
If you only knew the power of the Dark Side
Çıktı:
kn th p th D S
If y onl ew e ow of e ark id
o y er e
u
puanlama
Bu kod golf , yani en kısa kod kazanır.
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.
Bazı düşüncelerden sonra, bunun bir sonraki satıra geçmenin, ünlü harfin basılmadan önce gerçekleşmesi gerektiği anlamına geldiğini anlıyorum, fakat bundan hemen sonra anlaşılmayacak bir şekilde ifade etmeye değer olabilir - biraz zaman aldı.