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 1
st, r il 2
nd, e p
il 3
rd.
Prendiamo un altro programma che è il programma originale, ma con i suoi caratteri permutati:
epDr
Devi produrre
[1, 3, 0, 2]
perché e
è nella 1
posizione di st del programma originale, p
è nella 3
posizione di rd, D
il 0
°, e r
l' 2
ND.
Se il programma originale ha due caratteri ripetuti:
abcda -> [0, 1, 2, 3, 4]
Quindi per la permutazione, il 0
e 4
l'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
12
in R sarebbe valido? 12
Stamperebbe semplicemente e se permutato; 21
.