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

अजगर में टक्कर के बाद रॉकेट की अंतिम स्थिति खोजने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और यह रॉकेट के आकार और दिशा का प्रतिनिधित्व कर रहा है। धनात्मक पूर्णांक दाईं ओर इंगित करता है, और ऋणात्मक संख्या बाईं ओर दर्शाती है। और संख्या का निरपेक्ष मान रॉकेट के आकार का प्रतिनिधित्व करता है। अब जब दो रॉकेट आपस में टकराते हैं, तो छोटा रॉकेट नष्ट हो जाएगा और बड़ा रॉकेट अपनी यात्रा पर अपरिवर्तित रहेगा। जब वे एक ही आकार के रॉकेट होते हैं और वे टकराते हैं, तो वे दोनों नष्ट हो जाएंगे। जब दो रॉकेट एक ही दिशा में आगे बढ़ रहे हों, तो वे कभी नहीं टकराएंगे (रॉकेट की गति समान मानते हुए)। हमें सभी टकरावों के बाद रॉकेट की स्थिति का पता लगाना है।

इसलिए, यदि इनपुट nums =[3, 8, 5, -5] जैसा है, तो आउटपुट [3, 8] होगा, क्योंकि 5 और -5 नष्ट हो जाएंगे, शेष बचे रहेंगे।

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

  • ls :=एक तत्व संख्या के साथ एक नई सूची[0]
  • i के लिए 1 से लेकर अंकों के आकार -1 तक के लिए
    • यदि अंक[i]>=0, तो
      • एलएस के अंत में अंक [i] डालें
    • अन्यथा,
        ls के अंत में
      • अंक डालें[i]
      • j :=ls - 2 का आकार
      • जबकि j>=0 और ls[j]>=0, do
        • अगर |ls का अंतिम तत्व|> एलएस [जे], फिर
          • ls से jth एलिमेंट हटाएं
        • अन्यथा जब |ls का अंतिम तत्व| ls[j] के समान है, तब
          • ls से jth एलिमेंट हटाएं
          • ls से अंतिम तत्व हटाएं
          • लूप से बाहर आएं
        • अन्यथा,
          • एलएस से अंतिम तत्व हटाएं
          • लूप से बाहर आएं
        • j :=j-1
  • रिटर्न एलएस

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

उदाहरण

class Solution:
   def solve(self, nums):
      ls = [nums[0]]
      for i in range(1, len(nums)):
         if nums[i] >= 0:
            ls.append(nums[i])
         else:
            ls.append(nums[i])
            j = len(ls) - 2
            while j >= 0 and ls[j] >= 0:
               if abs(ls[-1]) > ls[j]:
                  ls.pop(j)
               elif abs(ls[-1]) == ls[j]:
                  ls.pop(j)
                  ls.pop(-1)
                  break
               else:
                  ls.pop(-1)
                  break
               j -= 1
      return ls

ob = Solution()
nums = [3, 8, 5, -5]
print(ob.solve(nums))

इनपुट

[3, 8, 5, -5]

आउटपुट

[3, 8]

  1. पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन क

  1. पायथन में बहुभुज की परिधि खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का परिमाप ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 16 होगा क्योंकि दो भुजाओं की लंबाई 3 है और दो भुजाओं

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

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