Consapevolezza posizionale
Il tuo compito è generare un programma che, per ogni permutazione dei suoi personaggi (che include il programma originale), emetta le posizioni di ogni personaggio rispetto al programma originale.
Se il tuo programma è
Derp
devi produrre
[0, 1, 2, 3]
(o qualche equivalente). Questo perché Dè in 0° posizione, eè nel 1st, r il 2nd, e pil 3rd.
Prendiamo un altro programma che è il programma originale, ma con i suoi caratteri permutati:
epDr
Devi produrre
[1, 3, 0, 2]
perché eè nella 1posizione di st del programma originale, pè nella 3posizione di rd, Dil 0°, e rl' 2ND.
Se il programma originale ha due caratteri ripetuti:
abcda -> [0, 1, 2, 3, 4]
Quindi per la permutazione, il 0e 4l'array devono essere in ordine crescente:
baadc -> [1, 0, 4, 3, 2] (0 first, then 4)
Regole:
- Il programma deve contenere almeno due caratteri univoci.
Al massimo i
floor(n/2)personaggi devono essere gli stessi.aabb (acceptable) aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)L'output del tuo programma può essere un array (o qualcosa di simile) contenente tutte le posizioni dei caratteri in ordine, oppure una stringa con qualsiasi delimitatore, quindi questi sono perfettamente a posto:
[0, 1, 2, 3] 0,1,2,3 0 1 2 3
12in R sarebbe valido? 12Stamperebbe semplicemente e se permutato; 21.