Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में बिट्स गिनना


मान लीजिए हमारे पास एक गैर-ऋणात्मक पूर्णांक संख्या num है। 0 ≤ i ≤ num की रेंज में प्रत्येक संख्या i के लिए हमें उनके बाइनरी समकक्ष में 1 की संख्या की गणना करनी है और उन्हें एक सूची के रूप में लौटाना है। इसलिए यदि संख्या 5 है, तो संख्याएं [0, 1, 2, 3, 4, 5] हैं, और इन संख्याओं में 1 की संख्या [0, 1, 1, 2, 1, 2] है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • res := एक सरणी जो num + 1 संख्या के 0 रखती है
  • offset := 0
  • i के लिए 1 से num + 1 तक की रेंज में
    • यदि i और i - 1 = 0, तो res[i] := 1 और offset := 0
    • अन्यथा offset को 1 से बढ़ाएं और res[i] := 1 + res[offset]
  • res लौटाएं

उदाहरण (पायथन)

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें -

class Solution:    def countBits(self, num):       result = [0] * (num+1)       offset = 0       for i in range(1,num+1):          if i & i-1 == 0:             result[i] = 1             offset = 0          else:             offset+=1             result[i] = 1 + result[offset]       return result ob1 = Solution() print(ob1.countBits(6))

इनपुट

6

आउटपुट

[0, 1, 1, 2, 1, 2, 2]

  1. पायथन प्रोग्राम: काउंटिंग सॉर्ट पायथन प्रोग्राम: काउंटिंग सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें काउंटिंग सॉर्ट की अवधारणा का उपयोग करके सरणी को क्रमबद्ध करना है। काउंटिंग सॉर्ट एक तकनीक है जिसमें हम एक विशिष्ट सीमा के बीच कीज़ पर काम करते हैं। इसमें विशिष्ट कुंजी और मान वाले ऑब्जेक्ट की संख्या गिनन

  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - Python में राइट शिफ्ट (>>) ऑपरेटर क्या है?

    ` को राइट शिफ्ट ऑपरेटर कहा जाता है। यह एक बिटवाइज़ ऑपरेटर है। इसके लिए पहले ऑपरेंड के रूप में ऑब्जेक्ट का बिटवाइज़ प्रतिनिधित्व आवश्यक है। बिट्स को दूसरे ऑपरेंड द्वारा निर्धारित बिट्स की संख्या से दाएं शिफ्ट किया जाता है। शिफ्टिंग के परिणामस्वरूप बाएं ओर के लीडिंग बिट्स 0 पर सेट हो जाते हैं। >&g