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

पायथन में n के बाइनरी रूप में 1s के सबसे लंबे लगातार रन की लंबाई खोजने का प्रोग्राम

मान लीजिए हमारे पास एक नॉन-नेगेटिव मान n है, हमें उसके बाइनरी प्रतिनिधित्व में 1s के सबसे लंबे लगातार रन की लंबाई ढूंढनी है।

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

एल्गोरिदम

  1. count := 0
  2. while n != 0:
    • n := n & (n << 1)
    • count := count + 1
  3. count लौटाएं

यह एल्गोरिदम ब्रायन कर्निघन के एल्गोरिदम का उपयोग करता है जहां प्रत्येक पुनरावृत्ति में सबसे दाएं 1 को साफ़ किया जाता है, लेकिन यहां हम n & (n << 1) का उपयोग करते हैं जो लगातार 1s को प्रभावी ढंग से गिनता है।

उदाहरण कार्यान्वयन

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

n = 1469
print(solve(n))  # आउटपुट: 4

इनपुट

1469

आउटपुट

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

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

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

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

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

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