कभी-कभी संख्याओं के द्विआधारी प्रतिनिधित्व के साथ काम करते समय हमें यह पता लगाने की आवश्यकता हो सकती है कि संख्या में कितने निरंतर 1 मौजूद हैं। यह लेख दो तरीकों से दिखाता है कि हम इसका पता कैसे लगा सकते हैं।
विभाजन और मानचित्र का उपयोग करना
पायथन में स्प्लिट फ़ंक्शन का उपयोग दिए गए स्ट्रिंग को कई स्ट्रिंग्स में विभाजित करने के लिए किया जा सकता है। हम इसे शून्य से विभाजित करते हैं और मानचित्र फ़ंक्शन का उपयोग उत्पन्न विभाजनों के बीच अधिकतम लंबाई खोजने के लिए किया जाता है।
उदाहरण
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
रेगुलर एक्सप्रेशन का उपयोग करना
पायथन में पुन:मॉड्यूल का उपयोग लगातार 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