Biorąc pod uwagę ciąg wejściowy, wyjściowy ciąg ze wszystkimi samogłosek a
, e
, i
, o
i u
zamienione na oślep między sobą.
Na przykład, w ciągu this is a test
istnieją 4 samogłoski: [i, i, a, e]
. Prawidłowe tasowanie tych samogłosek może [a, i, e, i]
zatem dać wynik thas is e tist
.
O tasowaniu
Wszystkie przetasowania będą jednakowo prawdopodobne, jeśli uznamy równe samogłoski za odrębne . W powyższym przykładzie możliwe są 24 losowe losowania:
[i 1 , i 2 , a, e] [i 1 , i 2 , e, a] [i 1 , a, i 2 , e] [i 1 , a, e, i 2 ] [i 1 , e, i 2 , a] [i 1 , e, a, i 2 ] [i 2 , i 1 , a, e] [i 2 , i 1 , e, a] [i 2 , a, i 1 , e] [i 2 , a, e, i 1 ] [i 2 , e, i 1 , a] [i 2 , e, a, i 1 ] [a, i 1 , i 2 , e] [a, i 1 , e, i 2 ] [a, i 2 , i 1 , e] [a, i 2 , e, i 1 ] [a, e, i 1 , i 2 ] [a, e, i 2 , i 1 ] [e, i 1 , i 2 , a] [e, i 1 , a, i 2 ] [e, i 2 , i 1 , a] [e, i 2 , a, i 1 ] [e, a, i 1 , i 2 ] [e, a, i 2 , i 1 ]
Każdy powinien być równie prawdopodobny.
Nie możesz próbować losowych losowań całego łańcucha, dopóki nie znajdziesz takiego, w którym wszystkie samogłoski są we właściwym miejscu. Krótko mówiąc, czas działania kodu powinien być stały, jeśli dane wejściowe są stałe.
Wejścia i wyjścia
Możesz założyć, że wszystkie litery na wejściu będą małe lub wielkie. Możesz również obsługiwać mieszane obudowy, ale to nie da ci żadnej premii.
Dane wejściowe zawsze będą składały się z drukowalnych znaków ASCII. Wszystkie znaki, które są na wejściu, powinny być na wyjściu, tylko samogłoski muszą być tasowane i nic więcej.
Dane wejściowe mogą być puste. Nie ma gwarancji, że dane wejściowe będą zawierać co najmniej jedną samogłoskę lub co najmniej jedną samogłoskę.
Możesz wziąć dane wejściowe
STDIN
jako parametr funkcji lub coś podobnego.Możesz wydrukować dane wyjściowe
STDOUT
, zwrócić je z funkcji lub coś podobnego.
Przypadki testowe
Pierwszy wiersz to dane wejściowe. Druga linia jest jednym z możliwych wyników.
<empty string>
<empty string>
a
a
cwm
cwm
the quick brown fox jumps over the lazy dog.
tho qeuck brewn fax jumps ovir the lozy dog.
abcdefghijklmnopqrstuvwxyz
abcdefghujklmnipqrstovwxyz
programming puzzles & code golf
pregromming pezzlos & coda gulf
fatalize
fitaleza
martin ender
mirten ander
Punktacja
To jest golf-golf , który jest jednym z najlepszych graczy .
y
się za samogłoskę, ale ostatnie wyzwanie, w którym powiedziałem, że y
to samogłoska, mnie zapytało, dlaczego to wybrałem!
y
samogłoski ..;)