Desafío
Escriba una función o programa que acepte una línea de entrada, realice una combinación aleatoria muy específica y extrañamente familiar en sus caracteres, y genere el resultado.
El barajado requerido se puede describir utilizando el siguiente algoritmo:
- Etiquete cada carácter en la entrada con un índice basado en 1.
- Escriba el carácter número 1 como salida.
- Comenzando con el carácter número 2, escriba cada otro carácter en la salida en orden, excluyendo el carácter 2. En otras palabras, escriba los caracteres 4, 6, 8, 10, etc. como salida.
- Comenzando con el siguiente número de caracteres n aún no escrito como salida, escriba cada enésimo carácter en la salida, excluyendo el carácter n mismo y excluyendo cualquier otro carácter (por etiqueta numérica) que ya haya escrito en la salida.
- Repita el paso 4 mientras continúe agregando nuevos caracteres a la salida.
- Escriba los caracteres restantes para la salida, en orden.
Ejemplo
- Rotula los personajes.
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 OLDDOCYAK 'SBEAUTYCORNER
2. Escriba el primer carácter a la salida:
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. Escriba todos los demás caracteres comenzando con 2, excepto 2.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNER O OA 'EUYCRE
4. El siguiente carácter aún no escrito es el número 3; escriba cada 3er carácter comenzando con 3, pero excluyendo el carácter 3 en sí, y cualquier carácter ya escrito.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA «EUYCRE YB R
5. Repita el paso 4 con el siguiente carácter, el carácter 5.
4. El siguiente carácter aún no escrito es el número 5; escriba cada quinto carácter comenzando con 5, pero excluyendo el carácter 5 en sí, y cualquier carácter ya escrito. (Esto equivale solo al personaje 25).
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA «EUYCREYB R N
5. El siguiente personaje es 7; pero 14, 21 ya se han escrito, por lo que no se generarán más caracteres si repetimos el paso 4. Por lo tanto, hemos terminado con 5.
6. Escriba los caracteres restantes en orden.
12 3456789101112131415161718192021222324252627OLD DOCYAK'SBEAUTYCORNEROOA «EUYCREYB RN LDDCKSATO
Reglas
La entrada y salida pueden ser a través de entrada estándar / salida estándar, cadenas o conjuntos de caracteres.
Si lee como entrada estándar, puede, según su conveniencia, asumir que hay una nueva línea final o que toda la entrada contiene la línea. Los personajes de nueva línea no participan en la combinación aleatoria.
Del mismo modo, a su conveniencia, su salida puede tener una nueva línea final o no.
Las lagunas estándar no están permitidas.
Este es un código de competencia de golf. El código más pequeño en bytes gana.
Casos de prueba
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.