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

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

मान लीजिए कि हमारे पास 0s और 1s वाली एक सूची है, हमें सूची के आगे या पीछे से मानों को हटाना होगा। अंत में, हमें आवश्यक न्यूनतम संख्या में विलोपन की आवश्यकता है ताकि शेष सूची में 0 और 1 की समान संख्या हो।

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

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

  • सबसे लंबा :=0
  • d :=एक नक्शा जहां कुंजी 0 के लिए मान -1 रखा जाता है
  • currSum:=0
  • मैं के लिए 0 से लेकर अंकों के आकार तक, करें
    • यदि अंक [i] 0 के समान है, तो
      • currSum :=currSum - 1
    • अन्यथा,
      • currSum :=currSum + 1
    • यदि currSum d में है, तो
      • सबसे लंबा :=अधिकतम सबसे लंबा और i - d[currSum]
    • अन्यथा,
      • d[currSum] :=i
  • अंकों का वापसी आकार - सबसे लंबा

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

उदाहरण

class Solution:
   def solve(self, nums):
      longest = 0
      d = {0 : -1}
      currSum = 0
      for i in range(len(nums)):
         if nums[i] == 0:
            currSum -= 1
         else:
            currSum += 1
         if currSum in d:
            longest = max(longest, i - d[currSum])
         else:
            d[currSum] = i
      return len(nums) - longest
ob = Solution()
nums = [1, 1, 1, 0, 0, 1] print(ob.solve(nums))

इनपुट

[1, 1, 1, 0, 0, 1]

आउटपुट

2

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

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

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

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

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

    मान लीजिए कि हमारे पास समान लंबाई के दो स्ट्रिंग्स P और Q हैं, जिनमें केवल लोअर केस लेटर्स हैं, हमें स्ट्रिंग P पर प्री-प्रोसेसिंग मूव्स की न्यूनतम संख्या को गिनना होगा, इसे नीचे के ऑपरेशनों को लागू करने के बाद स्ट्रिंग Q के बराबर बनाने के लिए आवश्यक है - कोई भी अनुक्रमणिका i चुनें और वर्ण pi और