Dato un elenco di numeri interi, creare una maschera booleana in modo che gli indici reali possano essere utilizzati per filtrare i valori distinti dall'elenco. L'indice selezionato come vero non ha importanza purché ne sia selezionato solo uno per ciascun set di indici corrispondenti a valori identici.
L'input sarà un elenco non vuoto di numeri interi non negativi in un formato adatto alla tua lingua e l'output sarà un elenco di valori booleani seguendo le specifiche sopra. È consentito utilizzare le proprie definizioni di valori di verità e falsità nell'elenco di output.
Nei miei esempi che seguono, definisco la 1
verità e la 0
falsità.
[5, 4, 7, 1] Input
[1, 1, 1, 1] Output
Select only the values with with true indicies in the sieve
[5 4 7 1] Contains zero duplicate values
[5, 9, 7, 5, 6, 0, 5]
[0, 1, 1, 1, 1, 1, 0]
[ 9, 7, 5, 6, 0 ]
Casi test
Quando c'è un or
, significa che ci sono più output validi. Se c'è un puntino di sospensione ...
dopo il or
, significa che non sono stati elencati tutti i possibili output.
[0] = [1]
[55] = [1]
[32, 44] = [1, 1]
[0, 0] = [1, 0] or [0, 1]
[9001, 9001, 9001] = [1, 0 , 0] or [0, 1, 0] or [0, 0, 1]
[5, 4, 7, 1] = [1, 1, 1, 1]
[1, 2, 3, 4, 3, 5] = [1, 1, 1, 1, 0, 1] or
[1, 1, 0, 1, 1, 1]
[5, 9, 7, 5, 6, 0, 5] = [1, 1, 1, 0, 1, 1, 0] or
[0, 1, 1, 1, 1, 1, 0] or
[0, 1, 1, 0, 1, 1, 1]
[0, 8, 6, 6, 3, 8, 7, 2] = [1, 1, 1, 0, 1, 0, 1, 1] or
[1, 0, 0, 1, 1, 1, 1, 1] or
[1, 0, 1, 0, 1, 1, 1, 1] or
[1, 1, 0, 1, 1, 0, 1, 1]
[45, 47, 47, 45, 24, 24, 24, 8, 47, 41, 47, 88]
= [1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1] or ...
[154, 993, 420, 154, 154, 689, 172, 417, 790, 175, 790, 790, 154, 172, 175, 175, 420, 417, 154, 175, 172, 175, 172, 993, 689, 993, 993, 790]
= [1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] or ...
Regole
- Questo è code-golf, quindi vince la soluzione più breve.
- I builtin sono ammessi!
- È consentito utilizzare le proprie definizioni di valori di verità e falsità nell'elenco di output. Se si sceglie di farlo, si prega di indicare le proprie definizioni.
- L'input sarà un elenco non vuoto di numeri interi non negativi.
- Sei libero di scegliere tra l'erogazione di uno solo dei setacci o multipli o anche tutti. Finché ogni setaccio è valido, sarà accettato.
[0, 8, 6, 6, 3, 8, 7, 2]
, dovrebbe[1, 0, 0, 1, 1, 1, 1, 1]
essere aggiunto all'elenco di output validi?