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

पायथन में बिट्स की एक जोड़ी को स्वैप करने के बाद 1s की सबसे लंबी संख्या खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग है। यदि हम स्ट्रिंग में वर्णों की अधिकतम एक जोड़ी को स्वैप कर सकते हैं, तो हमें 1s के सबसे लंबे सन्निहित विकल्प की परिणामी लंबाई ज्ञात करनी होगी।

इसलिए, यदि इनपुट s ="1111011111" जैसा है, तो आउटपुट 9 होगा, क्योंकि हम s[4] और s[9] को लगातार 9 1s प्राप्त करने के लिए स्वैप कर सकते हैं।

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

  • एल:=0, सीएनटी:=0, उत्तर:=0
  • r के लिए 0 से लेकर s के आकार के लिए, करें
    • cnt :=cnt + (1 जब s[r] "0" के समान हो अन्यथा 0)
    • अगर cnt> 1, तो
      • cnt :=cnt - (1 जब s[l] "0" के समान हो अन्यथा 0)
      • एल :=एल + 1
    • उत्तर :=अधिकतम उत्तर और (r - l + 1)
  • न्यूनतम उत्तर और 1 सेकंड में बार-बार आना

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

उदाहरण

class Solution:
   def solve(self, s):
      l = 0
      cnt = 0
      ans = 0
      for r in range(len(s)):
         cnt += s[r] == "0"
         if cnt > 1:
            cnt -= s[l] == "0"
            l += 1
         ans = max(ans, r - l + 1)
      return min(ans, s.count("1"))
ob = Solution()
s = "1111011111"
print(ob.solve(s))

इनपुट

"1111011111"

आउटपुट

9

  1. न्यूनतम संख्या रंग खोजने का कार्यक्रम पायथन में विलय के बाद रहता है

    मान लीजिए हमारे पास रंगों की एक सूची है (आर, जी, बी)। अब अगर दो अलग-अलग रंग एक-दूसरे के बगल में हों तो वे तीसरे रंग की एक ही रंग की वस्तु में बदल सकते हैं। हमें ऐसे परिवर्तनों के किसी भी संभावित क्रम के बाद शेष बची सबसे छोटी संख्या ज्ञात करनी होगी। इसलिए, यदि इनपुट रंग =[G, R, G, B, R] जैसा है, तो

  1. पायथन में क्रमबद्ध सूची में अद्वितीय पूर्णांकों की संख्या ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास क्रमबद्ध संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें सूची में अद्वितीय तत्वों की संख्या ज्ञात करनी है। इसलिए, यदि इनपुट अंकों की तरह है =[3, 3, 3, 4, 5, 7, 7], तो आउटपुट 4 होगा, क्योंकि अद्वितीय संख्याएँ [3, 4, 5, 7] हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे

  1. पायथन में एक नंबर से दूसरे नंबर बनाने के लिए आवश्यक न्यूनतम संख्या में संचालन खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक नंबर स्टार्ट है और दूसरा नंबर एंड (स्टार्ट <एंड) है, हमें इन ऑपरेशंस का उपयोग करके स्टार्ट टू एंड को कन्वर्ट करने के लिए आवश्यक ऑपरेशंस की न्यूनतम संख्या ज्ञात करनी होगी - 1 से वृद्धि 2 से गुणा करें इसलिए, यदि इनपुट प्रारंभ =5, अंत =11 जैसा है, तो आउटपुट 2 होगा, क्योंकि