Étant donné une liste d'entiers, créez un masque booléen de sorte que les vrais indices puissent être utilisés pour filtrer les valeurs distinctes de la liste. Quel indice est sélectionné comme vrai n'a pas d'importance tant qu'un seul d'entre eux est sélectionné pour chaque ensemble d'indices correspondant à des valeurs identiques.
L'entrée sera une liste non vide d'entiers non négatifs dans un format adapté à votre langue et la sortie sera une liste de valeurs booléennes suivant la spécification ci-dessus. Vous êtes autorisé à utiliser vos propres définitions des valeurs véridiques et fausses dans la liste de sortie.
Dans mes exemples ci-dessous, je définis 1
pour être vrai et 0
pour être faux.
[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 ]
Cas de test
Lorsqu'il y a un or
, cela signifie qu'il y a plusieurs sorties valides. S'il y a des points de suspension ...
après le or
, cela signifie que toutes les sorties possibles n'ont pas été répertoriées.
[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 ...
Règles
- C'est le golf de code, donc la solution la plus courte l'emporte.
- Les Builtins sont autorisés!
- Vous êtes autorisé à utiliser vos propres définitions des valeurs véridiques et fausses dans la liste de sortie. Si vous choisissez de le faire, veuillez indiquer vos définitions.
- L'entrée sera une liste non vide d'entiers non négatifs.
- Vous êtes libre de choisir entre sortir un seul des tamis ou plusieurs ou même tous. Tant que chaque tamis est valide, il sera accepté.
[0, 8, 6, 6, 3, 8, 7, 2]
, devrait[1, 0, 0, 1, 1, 1, 1, 1]
être ajouté à la liste des sorties valides?