कभी-कभी संख्याओं के बाइनरी प्रतिनिधित्व से निपटने के दौरान हमें यह पता लगाने की आवश्यकता हो सकती है कि संख्या में कितने निरंतर 1 मौजूद हैं। यह लेख दो तरीके दिखाता है कि हम इसका पता कैसे लगा सकते हैं।
Split और Map का उपयोग करना
पायथन में split फंक्शन का उपयोग दी गई स्ट्रिंग को कई स्ट्रिंग्स में विभाजित करने के लिए किया जा सकता है। हम इसे जीरो से विभाजित करते हैं और मैप फंक्शन का उपयोग विभाजित भागों में अधिकतम लंबाई खोजने के लिए किया जाता है।
उदाहरण
data = '11110000111110000011111010101010101011111111'
def Max_len_cons_1(data):
print("Maximum Number of consecutive one's: ", max(map(len, data.split('0'))))
Max_len_cons_1(data)
आउटपुट
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है -
Maximum Number of consecutive one's: 8
रेगुलर एक्सप्रेशन का उपयोग करना
पायथन में re मॉड्यूल का उपयोग लगातार 1 की अधिकतम संख्या गिनने के लिए भी किया जा सकता है। यहां हम 1+ का पैटर्न ढूंढते हैं जो एक या अधिक 1 की उपस्थिति को दर्शाता है। फिर उन पैटर्न में अधिकतम लंबाई ढूंढते हैं।
उदाहरण
data = '11110000111110010011'
import re
the_ones = re.findall(r"1+", data)
print("The blocks of one's: ", the_ones)
print("Maximum Number of consecutive one's =", len(max(the_ones, key=len)))
आउटपुट
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है -
The blocks of one's: ['1111', '11111', '1', '11'] Maximum Number of consecutive one's = 5