चुनौती
सकारात्मक पूर्णांकों की सूची को देखते हुए, यह पता लगाएं कि क्या एक क्रमपरिवर्तन मौजूद है जहां पूर्णांक के प्रत्येक से एक बिट तक ले जा रहा है, सभी 1
एस से मिलकर एक द्विआधारी संख्या बनाई जा सकती है।
परिणामी बाइनरी संख्या में बिट्स की संख्या पूर्णांक की सूची में उच्चतम एमएसबी के बराबर है ।
उत्पादन
यदि आपके पास इस तरह का क्रमपरिवर्तन मौजूद है, तो आपके कोड को एक सत्य / गलत मूल्य को आउटपुट या वापस करना होगा ।
उदाहरण
Truthy:
सूची [4, 5, 2]
, और इसके बाइनरी प्रतिनिधित्व के साथ [100, 101, 10]
, हम बनाने के लिए क्रमशः तीसरे, पहले और दूसरे बिट्स का उपयोग कर सकते हैं 111
:
4 -> 100 -> 100 -> 1
5 -> 101 -> 101 -> 1
2 -> 010 -> 010 -> 1
Result 111
सूची के साथ [3, 3, 3]
, सभी संख्याओं में पहले और दूसरे दोनों बिट्स सेट होते हैं 1
, इसलिए हम अपनी संख्या को अतिरिक्त संख्या में ले जा सकते हैं:
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 -> 1
3 -> 11 -> 11 ->
Result 11
Falsey:
सूची के साथ [4, 6, 2]
, किसी भी संख्या में पहला बिट सेट नहीं है 1
, इसलिए बाइनरी नंबर नहीं बनाया जा सकता है:
4 -> 100
6 -> 110
2 -> 010
सूची के साथ [1, 7, 1]
, केवल एक संख्या में दूसरे और तीसरे बिट सेट हैं 1
, और संख्या नहीं बनाई जा सकती है:
1 -> 001
7 -> 111
1 -> 001
जाहिर है, यदि सेट बिट्स की अधिकतम संख्या पूर्णांक की संख्या से अधिक है, तो परिणाम संख्या कभी भी नहीं बनाई जा सकती है।
परीक्षण के मामलों
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]
नियम
मानक खामियों को मना किया जाता है। जैसा कि यह कोड-गोल्फ है , सबसे छोटी प्रविष्टि जीतती है!