Sfida
Scrivi una funzione o un programma che accetta una riga di input, esegue uno shuffle molto specifico e stranamente familiare sui suoi caratteri e genera il risultato.
Il mescolamento richiesto può essere descritto usando il seguente algoritmo:
- Etichetta ciascun carattere nell'input con un indice basato su 1.
- Scrivi il carattere numero 1 come output.
- A partire dal carattere numero 2, scrivi ogni altro carattere nell'output in ordine, escluso il carattere 2 stesso. In altre parole, scrivi i caratteri 4, 6, 8, 10 e così via come output.
- A partire dal numero di carattere successivo n non ancora scritto come output, scrivere ogni ennesimo carattere sull'output, escludendo il carattere n stesso ed escludendo qualsiasi altro carattere (mediante etichetta numerica) che potrebbe essere già stato scritto nell'output.
- Ripetere il passaggio 4 finché continua ad aggiungere nuovi caratteri all'output.
- Scrivi i caratteri rimanenti per l'output, in ordine.
Esempio
- Etichetta i personaggi.
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. Scrivi il primo carattere da emettere:
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. Scrivi ogni altro carattere che inizia con 2, escluso 2.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNER O OA 'EUYCRE
4. Il prossimo personaggio non ancora scritto è il numero 3; scrivi ogni 3 ° carattere che inizia con 3, ma escluso il carattere 3 stesso e qualsiasi carattere già scritto.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA «EUYCRE YB R
5. Ripetere il passaggio 4 utilizzando il carattere successivo, il carattere 5.
4. Il prossimo carattere non ancora scritto è il numero 5; scrivi ogni 5 caratteri che iniziano con 5, ma escluso il carattere 5 stesso e qualsiasi carattere già scritto. (Ciò equivale a solo il personaggio 25).
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA «EUYCREYB R N
5. Il personaggio successivo è 7; ma 14, 21 sono già stati scritti, quindi non verranno più emessi caratteri se ripetiamo il passaggio 4. Quindi, abbiamo finito con 5.
6. Scrivi i caratteri rimanenti in ordine.
12 3456789101112131415161718192021222324252627OLD DOCYAK'SBEAUTYCORNEROOA «EUYCREYB RN LDDCKSATO
Regole
L'input e l'output possono avvenire tramite input / output standard, stringhe o matrici di caratteri.
Se la lettura come input standard si può presumere, a vostro piacimento, che ci sia una nuova riga finale o che l'intero input contenga la riga. I personaggi di Newline non partecipano allo shuffle.
Allo stesso modo, a vostro piacimento, il vostro output potrebbe avere una nuova riga finale oppure no.
Le scappatoie standard non sono ammesse.
Questa è una competizione di codice golf. Vince il codice più piccolo in byte.
Casi test
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.