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

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


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

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

समाधान दृष्टिकोण

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे (स्लाइडिंग विंडो अधिकतम 1 जीरो के साथ):

  • l := 0, cnt := 0, ans := 0
  • r को 0 से len(s) तक:
    • cnt += (1 if s[r]=='0' else 0)
    • यदि cnt > 1:
      • cnt -= (1 if s[l]=='0' else 0)
      • l += 1
    • ans := max(ans, r-l+1)
  • min(ans, s.count('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. पायथन में मर्जिंग के बाद न्यूनतम रंगों की संख्या खोजने का प्रोग्राम पायथन में मर्जिंग के बाद न्यूनतम रंगों की संख्या खोजने का प्रोग्राम

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

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

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

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

    मान लीजिए हमारे पास एक संख्या start और एक अन्य संख्या end है (start < end), हमें start को end में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ढूंढनी है इन संक्रियाओं का उपयोग करके: 1 से बढ़ाएं 2 से गुणा करें उदाहरण के लिए, यदि इनपुट है start = 5, end = 11, तो आउटपुट होगा 2, क्योंकि हम 2 से ग