チャレンジ
正の整数のリストが与えられた場合、各整数から最大1ビットを取得する順列が存在するかどうかを調べると、すべて1
のsで構成される2進数を作成できます。
結果の2進数のビット数は、最上位MSBと等しくなります、整数リストのにます。
出力
コードは、そのような置換が存在するかどうかを示す真偽値を出力または返す必要があります。
例
真実:
リスト[4, 5, 2]
とそのバイナリ表現[100, 101, 10]
を使用して、3番目、1番目、2番目のビットをそれぞれ使用して作成できます111
。
4 -> 100 -> 100 -> 1
5 -> 101 -> 101 -> 1
2 -> 010 -> 010 -> 1
Result 111
リストでは[3, 3, 3]
、すべての数値の最初と2番目のビットの両方がに設定されている1
ので、数に余裕を持って選択することができます。
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 ->
Result 11
偽:
リスト[4, 6, 2]
では、最初のビットがに設定され1
ている数値はないため、2進数を作成できません。
4 -> 100
6 -> 110
2 -> 010
リスト[1, 7, 1]
では、2番目と3番目のビットがに設定されているのは番号の1つのみであり、番号は1
作成できません。
1 -> 001
7 -> 111
1 -> 001
明らかに、設定されたビットの最大数が整数の数を超える場合、結果の数は作成されません。
テストケース
真実:
[1]
[1, 2]
[3, 3]
[3, 3, 3]
[4, 5, 2]
[1, 1, 1, 1]
[15, 15, 15, 15]
[52, 114, 61, 19, 73, 54, 83, 29]
[231, 92, 39, 210, 187, 101, 78, 39]
偽:
[2]
[2, 2]
[4, 6, 2]
[1, 7, 1]
[15, 15, 15]
[1, 15, 3, 1]
[13, 83, 86, 29, 8, 87, 26, 21]
[154, 19, 141, 28, 27, 6, 18, 137]
ルール
標準的な抜け穴は禁止されています。これはcode-golfなので、最短のエントリーが勝ちです!