Dato una stringa di input, output che stringa con tutte le vocali a
, e
, i
, o
e u
scambiato a caso tra loro.
Per esempio, nella stringa this is a test
, ci sono 4 vocali: [i, i, a, e]
. Una mescolanza valida di quelle vocali potrebbe [a, i, e, i]
quindi produrre il risultato thas is e tist
.
A proposito di mescolanza
Tutte le mescolanze devono essere ugualmente probabili se consideriamo vocali uguali distinte . Per l'esempio sopra, sono possibili quei 24 riordini:
[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 ]
Ognuno dovrebbe essere altrettanto probabile.
Non puoi provare a mescolare casualmente l'intera stringa fino a trovare quella in cui tutte le vocali sono nel posto giusto. In breve, il tempo di esecuzione del codice deve essere costante se l'input è costante.
Ingressi e uscite
Si può presumere che tutte le lettere nell'input siano minuscole o maiuscole. Puoi anche supportare il case misto, anche se questo non ti darà alcun bonus.
L'input consisterà sempre di caratteri ASCII stampabili. Tutti i caratteri che si trovano nell'input devono essere nell'output, solo le vocali devono essere mescolate e nient'altro.
L'input può essere vuoto. Non vi è alcuna garanzia che l'input conterrà almeno una vocale o almeno una non vocale.
È possibile prendere l'input da
STDIN
, come parametro di funzione o qualcosa di simile.È possibile stampare l'output
STDOUT
, restituirlo da una funzione o qualcosa di simile.
Casi test
La prima riga è l'input dato. La seconda riga è una delle possibili uscite.
<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
punteggio
Si tratta di code-golf , per chi veste di camicia e di byte vinti .
y
una vocale, ma l'ultima sfida in cui ho detto y
era una vocale mi è stato chiesto perché l'ho scelto!
y
vocale ..;)