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

पायथन में n के द्विआधारी रूप में 1s का लगातार सबसे लंबा रन खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक गैर-ऋणात्मक मान n है, हमें इसके द्विआधारी प्रतिनिधित्व में 1s के लगातार सबसे लंबे समय तक चलने की लंबाई का पता लगाना है।

इसलिए, यदि इनपुट n =1469 जैसा है, तो आउटपुट 4 होगा, क्योंकि 156 का बाइनरी प्रतिनिधित्व "10110111101" है, इसलिए लगातार चार 1s हैं

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

  • गिनती :=0
  • जबकि n 0 के समान नहीं है, करें
    • n :=n AND (n एक बिट बाईं ओर शिफ्ट करने के बाद)
    • गिनती :=गिनती + 1
  • वापसी की संख्या

उदाहरण

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

def solve(n):
   count = 0
   while n != 0:
      n = n & (n << 1)
      count = count + 1

   return count

n = 1469
print(solve(n))

इनपुट

1469

आउटपुट

4

  1. पायथन में एक बाइनरी ट्री के सबसे लंबे वैकल्पिक पथ की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमें सबसे लंबा रास्ता खोजना है जो बाएं और दाएं बच्चे और नीचे जाने के बीच वैकल्पिक हो। तो, अगर इनपुट पसंद है तो आउटपुट 5 होगा क्योंकि वैकल्पिक पथ [2, 4, 5, 7, 8] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: यदि रूट रिक्त है, तो वापसी 0 एक फ़ंक्

  1. पायथन में एक बाइनरी ट्री की जड़ से पत्ती तक सबसे लंबे योग पथ का योग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमें रूट से लीफ नोड तक के सबसे लंबे पथ का योग ज्ञात करना है। यदि दो समान लंबे पथ हैं, तो पथ को अधिक राशि के साथ लौटाएं। तो, अगर इनपुट पसंद है तो आउटपुट 20 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - फ़ंक्शन rec() को परिभाषित करें। यह कठिन

  1. पायथन में बाइनरी ट्री का सबसे लंबा सम मान पथ खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमें ट्री में किन्हीं दो नोड्स के बीच सम मानों वाला सबसे लंबा पथ खोजना होगा। तो, अगर इनपुट पसंद है तो आउटपुट 5 होगा क्योंकि सबसे लंबा रास्ता [10, 2, 4, 8, 6] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - उत्तर :=0 फ़ंक्शन ढूंढें() को परिभाष