整数のリストが与えられたら、真のインデックスを使用してリストから個別の値をフィルターできるようにブールマスクを作成します。真のインデックスとして選択されるインデックスは、同一の値に対応するインデックスのセットごとに1つだけが選択されている限り、重要ではありません。
入力は、ご使用の言語に適した形式の負でない整数の空でないリストになり、出力は上記の仕様に従ったブール値のリストになります。出力リストでは、真偽値と偽値の独自の定義を使用できます。
以下の例では、私は1
真実であり0
、虚偽であると定義しています。
[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 ]
テストケース
がある場合or
、有効な出力が複数あることを意味します。末尾に省略記号がある場合は...
後にor
、それはないすべての可能な出力のが表示されていたことを意味します。
[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 ...
ルール
- これはコードゴルフなので、最短のソリューションが勝ちます。
- 組み込みが許可されています!
- 出力リストでは、真偽値と偽値の独自の定義を使用できます。そうすることを選択した場合は、定義を明記してください。
- 入力は、負でない整数の空でないリストになります。
- ふるいのうちの1つのみを出力するか、複数またはすべてを出力するかを自由に選択できます。各ふるいが有効である限り、受け入れられます。
[0, 8, 6, 6, 3, 8, 7, 2]
、[1, 0, 0, 1, 1, 1, 1, 1]
有効な出力のリストに追加する必要がありますか?