Принимая во внимание входную строку, выходной , что строка со всеми гласные a
, e
, i
, o
и u
выгружена в случайном порядке друг между другом.
Например, в строке this is a test
, есть 4 гласных: [i, i, a, e]
. [a, i, e, i]
Таким образом, правильная перетасовка этих гласных может привести к получению результата thas is e tist
.
О перетасовке
Все тасования будут одинаково вероятны, если мы будем считать равные гласные разными . Для приведенного выше примера возможны эти 24 шаффла:
[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 ]
Каждый из них должен быть одинаково вероятным.
Вы не можете использовать случайные тасовки всей строки, пока не найдете тот, в котором все гласные находятся в нужном месте. Короче говоря, время выполнения вашего кода должно быть постоянным, если ввод постоянный.
Входы и выходы
Вы можете предположить, что все буквы на входе будут строчными или прописными. Вы также можете поддерживать смешанный корпус, но это не даст вам никакого бонуса.
Ввод всегда будет состоять из печатных символов ASCII. Все символы, которые находятся на входе, должны быть на выходе, только гласные должны быть перемешаны и ничего больше.
Ввод может быть пустым. Нет никакой гарантии, что входные данные будут содержать хотя бы одну гласную или хотя бы одну не гласную.
Вы можете использовать входные данные
STDIN
как параметр функции или что-либо подобное.Вы можете распечатать вывод
STDOUT
, вернуть его из функции или чего-либо подобного.
Контрольные примеры
Первая строка - это заданный ввод. Вторая строка - один из возможных выходов.
<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
счет
Это код-гольф , так называемый футболист .
y
его гласным, но последний вызов, на котором я сказал, y
был гласным, и меня спросили, почему я выбрал это!
y
гласных