Erstellen Sie anhand einer Liste von Ganzzahlen eine boolesche Maske, sodass die einzelnen Werte aus der Liste anhand der wahren Indizes gefiltert werden können. Welcher Index als der wahre Index ausgewählt wird, spielt keine Rolle, solange für jeden Indexsatz, der identischen Werten entspricht, nur einer von ihnen ausgewählt wird.
Die Eingabe ist eine nicht leere Liste nicht negativer Ganzzahlen in einem für Ihre Sprache geeigneten Format, und die Ausgabe ist eine Liste boolescher Werte, die der obigen Spezifikation folgt. In der Ausgabeliste dürfen Sie eigene Definitionen von Wahrheits- und Falschwerten verwenden.
In meinen nachstehenden Beispielen definiere 1
ich Wahrhaftigkeit und 0
Falschheit.
[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 ]
Testfälle
Wenn ein vorhanden ist or
, bedeutet dies, dass mehrere gültige Ausgaben vorhanden sind. Befindet sich ...
nach dem ein nachstehender Auslassungspunkt or
, wurden nicht alle möglichen Ausgaben aufgelistet.
[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 ...
Regeln
- Das ist Code-Golf, also gewinnt die kürzeste Lösung.
- Builtins sind erlaubt!
- In der Ausgabeliste dürfen Sie eigene Definitionen von Wahrheits- und Falschwerten verwenden. Wenn Sie dies wünschen, geben Sie bitte Ihre Definitionen an.
- Die Eingabe ist eine nicht leere Liste nicht negativer Ganzzahlen.
- Sie können wählen, ob Sie nur eines oder mehrere oder sogar alle Siebe ausgeben möchten. Solange jedes Sieb gültig ist, wird es akzeptiert.
[0, 8, 6, 6, 3, 8, 7, 2]
sollte[1, 0, 0, 1, 1, 1, 1, 1]
in die Liste der gültigen Ausgaben aufgenommen werden?