母音韻:リンゴとバナナ
すべての母音がランダムな母音に置き換えられるたびに同じテキストを何度も繰り返す伝統的な子供の歌がありますが、現在のスタンザ全体で一定です。
チャレンジ
目的は、入力テキストに対してこのような変換を実行する最短のコードを提案することです。
ルール
- 韻は、はっきりした母音が存在するのと同じ回数だけ印刷する必要があります。
- 各印刷は改行で区切る必要があります(プラットフォーム固有のコンボ
\n
とコンボ\r
は受け入れられます)。 - 繰り返しの
i
場合、各母音をi
元のテキストのth番目の別個の母音に置き換えます。 - 入力テキストは、印刷可能なASCII文字(範囲
[32, 126]
。 - 入力には埋め込み改行が含まれません。
- 母音文字のみが影響を受ける必要があり、その他は入力として正確に出力される必要があります。
- 母音文字のみがカウントされます。鼻の母音は、母音のように聞こえますが(フランス語の"Tintin"のように)、単一の母音として処理してはなりません。
- 出力では大文字と小文字が区別されますが、位置は異なります(大文字の母音の置換は大文字の置換母音で行われます)
- 大文字の母音は、小文字の母音と区別されません(つまり、
a
<=>A
) - 連続した母音は常に別々に考慮されます(つまり
Boat
、Boot
との両方を生成しますBaat
) - 文字
y
は母音または子音(英語を話しているように)を表すため、母音または子音として扱うことは許可されますが、答えはy
母音として扱うかどうかを明示的に指定する必要があります。
例:
こんにちは世界
Hello world!
与える:
Helle werld!
Hollo world!
y
母音として処理された元のフランス語のテキスト(翻訳済み)からの抜粋:
An elephant that was rambling all gently in the woods...
与える:
An alaphant that was ramblang all gantla an tha waads...
En elephent thet wes rembleng ell gentle en the weeds...
In iliphint thit wis rimbling ill gintli in thi wiids...
Yn ylyphynt thyt wys rymblyng yll gyntly yn thy wyyds...
On olophont thot wos romblong oll gontlo on tho woods...
先頭の大文字の母音の動作に注意してください。大文字と小文字はインデックスに保持されます(ルール8および9)。
母音なしの例
次のような母音を含まない入力
lgn@hst:~$ rm -rf ./* ~ /
出力を生成しないか、単一の改行を生成する必要があります。
単一母音入力
単一の母音を含む入力はそのまま出力されます。
Dad sat at a car and saw a fat bat.
与える:
Dad sat at a car and saw a fat bat.
これはcode-golfなので、最少のバイトカウントコードが勝ちます(永遠のPPCG栄光以外はありません)!