Meydan okuma
Olumlu tamsayıların bir listesi göz önüne alındığında, tamsayıların her birinden bir bit alarak, her 1
s'den oluşan bir ikili sayı oluşturulabilen bir izin olup olmadığını bulun .
Elde edilen ikili sayıdaki bit sayısı, tamsayılar listesindeki en yüksek MSB'ye eşittir .
Çıktı
Kodunuz, böyle bir izin olup olmadığını belirten bir truthy / falsey değeri vermeli veya döndürmelidir .
Örnekler
Truthy:
Liste [4, 5, 2]
ve ikili gösterimi ile [100, 101, 10]
, aşağıdakileri oluşturmak için sırasıyla üçüncü, birinci ve ikinci bitleri kullanabiliriz 111
:
4 -> 100 -> 100 -> 1
5 -> 101 -> 101 -> 1
2 -> 010 -> 010 -> 1
Result 111
Listede [3, 3, 3]
, tüm sayılar hem birinci hem de ikinci bit olarak ayarlanmıştır 1
, bu yüzden seçimimizi boşa almak için bir sayı ile alabiliriz:
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 ->
Result 11
Falsey:
Listede [4, 6, 2]
, sayıların hiçbiri ilk biti ayarlamaz 1
, bu nedenle ikili sayı oluşturulamaz:
4 -> 100
6 -> 110
2 -> 010
Listede [1, 7, 1]
, sayılardan yalnızca biri olarak ayarlanan ikinci ve üçüncü bitlere sahiptir 1
ve sayı oluşturulamaz:
1 -> 001
7 -> 111
1 -> 001
Açıkça, eğer maksimum set bit sayısı, tamsayı sayısını aşıyorsa, sonuç numarası asla oluşturulamaz.
Test durumları
Truthy:
[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]
Falsey:
[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]
kurallar
Standart boşluklar yasaktır. Bu kod golf olduğu için en kısa giriş kazanır!