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

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


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

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

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

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

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

उदाहरण

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. - पायथन में एक संख्या को दूसरी संख्या में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या खोजने का प्रोग्राम

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

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

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

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

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