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

पायथन में बाइनरी स्ट्रिंग को वैकल्पिक करने के लिए आवश्यक न्यूनतम परिवर्तन खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग है। आइए एक ऑपरेशन पर विचार करें जहां हम एक बिट फ्लिप कर सकते हैं। स्ट्रिंग s को वैकल्पिक स्ट्रिंग कहा जाता है यदि कोई दो आसन्न वर्ण समान नहीं हैं। हमें बारी-बारी से संचालन करने के लिए आवश्यक न्यूनतम संख्या का पता लगाना होगा।

इसलिए, अगर इनपुट s ="11100011" जैसा है, तो आउटपुट 3 होगा क्योंकि अगर हम बिट्स को 1, 4 और 7 की स्थिति में फ्लिप करते हैं, तो यह "10101010" होगा, तो सभी बारी-बारी से हो रहे हैं।

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

  • परिवर्तन :=0

  • सम_1:=0, सम_0:=0

  • विषम_1:=0, विषम_0:=0

  • मैं के लिए 0 से s-1 के आकार की सीमा में, करो

    • अगर मैं सम है, तो

      • अगर s[i] '1' के समान है, तो

        • सम_1 :=सम_1 + 1

      • अन्यथा,

        • सम_0 :=सम_0 + 1

    • अन्यथा,

      • अगर s[i] '1' के समान है, तो

        • विषम_1 :=विषम_1 + 1

      • अन्यथा,

        • विषम_0:=विषम_0 + 1

  • अगर (सम_1+विषम_0)> (सम_0+विषम_1), तो

    • परिवर्तन :=सम_0 + विषम_1

  • अन्यथा,

    • परिवर्तन :=सम_1 + विषम_0

  • वापसी परिवर्तन

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

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

def solve(s):
   change = 0
   even_1 = 0
   even_0 = 0
   odd_1 = 0
   odd_0 = 0
   for i in range(len(s)):
      if(i%2 == 0):
         if(s[i]=='1'):
            even_1 +=1
         else:
            even_0 +=1
      else:
         if(s[i] == '1'):
            odd_1 +=1
         else:
            odd_0 +=1
   if((even_1+odd_0)>(even_0+odd_1)):
      change = even_0 + odd_1
   else:
      change = even_1 + odd_0
   return change

s = "11100011"
print(solve(s))

इनपुट

"11100011"

आउटपुट

3

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

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

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

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

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या इनपुट को देखते हुए, दी गई संख्या के गुणनखंडों का न्यूनतम योग ज्ञात करें। यहां हम सभी कारकों और उनके संगत योग की गणना करेंगे और फिर उनमें से न्यूनतम का पता लगाएंगे। इसलिए संख्या के गुणनफल का न्यूनतम योग ज्