Вызов
Напишите функцию или программу, которая принимает строку ввода, выполняет очень специфическое и странно знакомое перемешивание своих символов и выводит результат.
Требуемая перетасовка может быть описана с использованием следующего алгоритма:
- Пометьте каждый символ на входе индексом, основанным на 1.
- Напишите символ номер 1 в качестве вывода.
- Начиная с символа номер 2, запишите все остальные символы в выводе по порядку, исключая сам символ 2. Другими словами, пишите символы 4, 6, 8, 10 и т. Д. В качестве вывода.
- Начиная со следующего номера символа n, еще не записанного в качестве вывода, запишите каждый n-й символ в вывод, исключая сам символ n и исключая любые другие символы (с помощью числовой метки), которые вы, возможно, уже записали в вывод.
- Повторите шаг 4, пока он продолжает добавлять новые символы в вывод.
- Запишите остальные символы для вывода по порядку.
пример
- Назовите персонажей.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Олддокьяк
2. Запишите первый символ для вывода:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27OLDDOCYAK 'SBEAUTYCORNER O
3. Напишите все остальные символы, начиная с 2, за исключением 2.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNER O OA 'EUYCRE
4. Следующий еще не написанный символ - это символ № 3; пишите каждый третий символ, начиная с 3, но исключая сам символ 3 и любой уже написанный символ.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA 'EUYCRE YB R
5. Повторите шаг 4, используя следующий символ, символ 5.
4. Следующий еще не написанный символ - это символ № 5; пишите каждый 5-й символ, начиная с 5, но исключая сам символ 5 и любой уже написанный символ. (Это всего лишь символ 25).
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA 'EUYCREYB R N
5. Следующий персонаж - 7; но 14, 21 уже написаны, поэтому больше символов не будет выведено, если мы повторим шаг 4. Таким образом, мы закончили с 5.
6. Запишите остальные символы по порядку.
12 3456789101112131415161718192021222324252627OLD DOCYAK'SBEAUTYCORNEROOA 'EUYCREYB RN LDDCKSATO
правила
Ввод и вывод могут быть через стандартный ввод / стандартный вывод, строки или массивы символов.
Если вы читаете в качестве стандартного ввода, вы можете по своему усмотрению предположить, что есть завершающий символ новой строки или что весь ввод содержит строку. Символы новой строки не участвуют в случайном порядке.
Точно так же, для вашего удобства, ваш вывод может иметь либо завершающий перевод строки, либо нет.
Стандартные лазейки запрещены.
Это кодовое соревнование по гольфу. Наименьший код в байтах побеждает.
Тестовые случаи
123456789ABCDEF -> 1468ACE9F2357BD
OLD DOC YAK'S BEAUTY CORNER -> O O A' EUYCREYB RNLDDCKSATO
Blue boxes use a 2600hz tone to convince telephone switches that use in-band signalling that the caller is actually a telephone operator.
->
Bebxsuea20h oet ovnetlpoesice htuei-adsgaln httecle satal eehn prtre 0ncce ha nng aiuapootnt ihyon atallu o s 6z oi ehwstsnbilt lr clee.