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

पायथन में वैकल्पिक मूल्यों के लिए आवश्यक न्यूनतम संख्या में फ़्लिप खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग है। अब मान लीजिए कि हम s का कुछ उपसर्ग ले सकते हैं और इसे पीछे की ओर ले जा सकते हैं। फिर, उन वर्णों की न्यूनतम संख्या ज्ञात करें जिन्हें फ़्लिप करने की आवश्यकता है ताकि समान मान के लगातार वर्ण न हों।

इसलिए, यदि इनपुट s ="10010101111" जैसा है, तो आउटपुट 2 होगा, क्योंकि हम उपसर्ग "10" ले सकते हैं, फिर इसे पीछे की ओर ले जाएं ताकि स्ट्रिंग "01010111110" हो, फिर तीसरे और 5 वें बिट को दाएं से 0 पर फ्लिप करें। ("01010101010")।

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

  • उत्तर:=एस का आकार

  • एन:=एस का आकार

  • एस:=0

  • मैं के लिए 0 से 2 * एन की सीमा में, करो

    • s :=s + पूर्णांक (S[i mod N] XOR (i और 1))

    • अगर मैं>=एन -1, तो

      • उत्तर :=न्यूनतम उत्तर, s और N - s

      • s :=s - पूर्णांक (S[(i -(N - 1)) mod N]) XOR ((i - (N - 1)) और 1)

  • वापसी उत्तर

उदाहरण

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

class Solution:
   def solve(self, S):
      ans = N = len(S)
      s = 0
      for i in range(2 * N):
         s += int(S[i % N]) ^ (i & 1)
         if i >= N - 1:
            ans = min(ans, s, N - s)
            s -= int(S[(i - (N - 1)) % N]) ^ ((i - (N - 1)) & 1)
      return ans
ob = Solution()
s = "10010101111"
print(ob.solve(s))

इनपुट

"10010101111"

आउटपुट

2

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

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

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

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

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

    मान लीजिए कि हमारे पास दो तार s और t हैं, हमें t को s का विकल्प बनाने के लिए s के लिए आवश्यक न्यूनतम संक्रियाएँ ज्ञात करनी होंगी। अब, प्रत्येक ऑपरेशन में, हम s में कोई भी स्थिति चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं। इसलिए, यदि इनपुट s =abbpqr, t =bbxy जैसा है, तो आउट