কম্পিউটার

পাইথনে মিন স্ট্যাক


এখানে আমরা দেখব কিভাবে একটি স্ট্যাক তৈরি করা যায়, যা পুশ, পপ, টপ এবং স্থির সময়ে মিন এলিমেন্ট পুনরুদ্ধার করতে পারে। সুতরাং ফাংশন হবে push(x), pop(), top() এবং getMin()

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ইনফিনিটি হিসাবে ন্যূনতম উপাদান দ্বারা স্ট্যাক শুরু করুন
  • পুশ অপারেশনের জন্য push(x)
    • যদি x <মিনিট হয়, তাহলে min আপডেট করুন :=x,
    • স্ট্যাকের মধ্যে এক্স পুশ করুন
  • পপ অপারেশন pop()
      এর জন্য
    • t :=শীর্ষ উপাদান
    • স্ট্যাক থেকে টি মুছুন
    • যদি t min হয়, তাহলে min :=স্ট্যাকের শীর্ষ উপাদান
  • টপ অপারেশন টপ()
      এর জন্য
    • শুধুমাত্র উপরের উপাদানটি ফেরত দিন
  • getMin অপারেশনের জন্য getMin()
    • মিনিট এলিমেন্ট ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

class MinStack(object):
   min=float('inf')
   def __init__(self):
      self.min=float('inf')
      self.stack = []
   def push(self, x):
      if x<=self.min:
         self.stack.append(self.min)
         self.min = x
      self.stack.append(x)
   def pop(self):
      t = self.stack[-1]
      self.stack.pop()
      if self.min == t:
         self.min = self.stack[-1]
         self.stack.pop()
   def top(self):
      return self.stack[-1]
   def getMin(self):
      return self.min
m = MinStack()
m.push(-2)
m.push(0)
m.push(-3)
print(m.getMin())
m.pop()
print(m.top())
print(m.getMin())

ইনপুট

m = MinStack()
m.push(-2)
m.push(0)
m.push(-3)
print(m.getMin())
m.pop()
print(m.top())
print(m.getMin())

আউটপুট

-3
0
-2

  1. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়তক্ষেত্র

  2. পাইথনে বৃষ্টির পানি আটকানো

  3. টিকিন্টার পাইথনে সংকোচনযোগ্য ফলক

  4. পাইথনে উত্তরাধিকার