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

पायथन का उपयोग करके n-वें बाइनरी स्ट्रिंग में Kth बिट खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो सकारात्मक मान n और k हैं, अब हम निम्नलिखित नियमों का उपयोग करके एक बाइनरी स्ट्रिंग S_n बना सकते हैं -

  • S_1 =0

  • S_i =S_i-1 कॉन्टेनेट "1" कॉन्टेनेट रिवर्स (इनवर्ट (S_i-1)) i> 1

    के लिए

यहां रिवर्स (एक्स) उलटा स्ट्रिंग एक्स देता है, और इनवर्ट (एक्स) एक्स में सभी बिट्स को फ़्लिप करता है।

ये ऐसे चार तार के उदाहरण हैं

  • S_1 ="0"

  • S_2 ="011"

  • S_3 ="0111001"

  • S_4 ="011100110110001"

हमें S_n में kth बिट खोजना है।

इसलिए, यदि इनपुट n =4 k =10 जैसा है, तो आउटपुट 1 होगा क्योंकि S_4 ="011100110110001", इसलिए 10 वां बिट 1 है (पहला बिट स्थिति 1 पर है)।

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

  • अगर k 1 के समान है, तो

    • 0 को स्ट्रिंग के रूप में लौटाएं

  • अन्यथा,

    • arr :=एकल तत्व 0 के साथ एक सरणी

    • arr2 :=एकल तत्व 1 के साथ एक सरणी

    • जबकि k> गिरफ्तारी का आकार, करें

      • templast :=गिरफ्तारी की प्रति

      • temp2last :=arr2 की कॉपी

      • arr :=templast concatenate 1 concatenate temp2last

      • arr2 :=templast concatenate 0 concatenate temp2last

  • गिरफ्तारी से k-1 वां तत्व लौटाएं

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

उदाहरण

def solve(n, k):
   if k == 1:
      return(str(0))
   else:
      arr = [0]
      arr2 = [1]
      while k > len(arr):
         templast = arr.copy()
         temp2last = arr2.copy()
         arr = templast + [1] + temp2last
         arr2 = templast + [0] + temp2last
      return(str(arr[k-1]))
n = 4
k = 10
print(solve(n, k))

इनपुट

4, 10

आउटपुट

1

  1. पायथन का उपयोग करके बाइनरी ट्री में दाईं ओर नोड का पता लगाने का कार्यक्रम

    मान लीजिए, हमें एक बाइनरी ट्री प्रदान किया जाता है। हमें एक नोड (u नाम दिया गया) के लिए एक पॉइंटर भी दिया जाता है और हमें दिए गए नोड के ठीक दाईं ओर स्थित नोड को खोजना होता है। दिए गए नोड के दाईं ओर स्थित नोड समान स्तर पर रहना चाहिए और दिया गया नोड या तो लीफ नोड या आंतरिक नोड हो सकता है। तो, अगर इनप

  1. पायथन का उपयोग करके कोष्ठक स्ट्रिंग को संतुलित करने के लिए न्यूनतम सम्मिलन खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास कोष्ठक ( और ) खोलने और बंद करने के साथ एक स्ट्रिंग है। हम कह सकते हैं कि एक कोष्ठक स्ट्रिंग संतुलित होती है जब - कोई भी बायां कोष्ठक ( में दो लगातार दाएं कोष्ठक होते हैं ))। एक बायां कोष्ठक ( दो क्रमागत दायें कोष्ठक से पहले जाना चाहिए))। तो उदाहरण के लिए, ()), ())(())

  1. पायथन का उपयोग करके बाइनरी ग्रिड की व्यवस्था करने के लिए न्यूनतम स्वैप खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक n x n बाइनरी मैट्रिक्स है। हम इस पर एक ऑपरेशन कर सकते हैं जैसे, एक चरण में हम दो आसन्न पंक्तियों का चयन करते हैं और उन्हें स्वैप करते हैं। हमें आवश्यक न्यूनतम स्वैप की संख्या गिननी होगी, ताकि मैट्रिक्स के प्रमुख विकर्ण के ऊपर सभी नोड्स 0 हों। यदि ऐसा कोई समाधान नहीं है, तो