কম্পিউটার

পাইথনে সিট রিজার্ভেশন ম্যানেজার বাস্তবায়নের জন্য প্রোগ্রাম


ধরুন আমাদের এমন একটি সিস্টেম ডিজাইন করতে হবে যা n আসনের রিজার্ভেশন অবস্থা পরিচালনা করে। আসন সংখ্যা 1 থেকে n পর্যন্ত। তাই আমাদের এই ফাংশনগুলি −

সহ SeatReserveManager ক্লাস বাস্তবায়ন করতে হবে
  • কনস্ট্রাক্টর যেটি n ইনপুট হিসাবে নেয় এবং অবজেক্ট শুরু করে যেটি 1 থেকে n পর্যন্ত সংখ্যাযুক্ত n আসন পরিচালনা করবে। প্রাথমিকভাবে সব আসন পাওয়া যায়।

  • reserve(), এটি ক্ষুদ্রতম-সংখ্যার অসংরক্ষিত আসন আনবে, তারপর এটি সংরক্ষণ করবে এবং এর নম্বর ফেরত দেবে।

  • unreserve(seatNumber), এটি প্রদত্ত আসন নম্বরের সাথে একটি সংরক্ষিত আসন বাতিল করবে।

সুতরাং, যদি ইনপুট মত হয়

  • obj =SeatReserveManager(7)

  • obj.reserve()

  • obj.reserve()

  • obj.reserve()

  • obj.unreserve(2)

  • obj.unreserve(5)

  • obj.reserve()

  • obj.reserve()

তাহলে আউটপুট হবে 1, 2, 3, 2, 5, প্রাথমিকভাবে তিনটি আসন 1, 2, 3, তারপর অসংরক্ষিত 2 এবং 5 তবে 5 এখনও সংরক্ষিত হয়নি, তারপর পরবর্তী 5টি রিজার্ভ করুন৷

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

  • Constuctor() সংজ্ঞায়িত করুন। এটি n

    লাগবে৷
  • বর্তমান_আসন :=0

  • empty_seats :=একটি নতুন তালিকা

  • একটি ফাংশন রিজার্ভ () সংজ্ঞায়িত করুন। এটি লাগবে

  • যদি খালি_সিটের দৈর্ঘ্য> 0, তাহলে

    • s :=ন্যূনতম খালি_সিট

    • খালি_সিট থেকে s মুছুন

    • s

      ফেরত দিন
  • বর্তমান_সিট :=বর্তমান_সিট + 1

  • বর্তমান_আসন ফেরত দিন

  • একটি ফাংশন unreserve() সংজ্ঞায়িত করুন। এটি আসন সংখ্যা গ্রহণ করবে

  • খালি_সীট

    শেষে seatNumber যোগ করুন

উদাহরণ

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

class SeatReserveManager:
   def __init__(self, n):
      self.current_seat = 0
      self.empty_seats = []

   def reserve(self):
      if len(self.empty_seats) > 0:
         s = min(self.empty_seats)
         self.empty_seats.remove(s)
         return s
      self.current_seat += 1

      return self.current_seat

   def unreserve(self, seatNumber):
      self.empty_seats.append(seatNumber)

obj = SeatReserveManager(7)
print(obj.reserve())
print(obj.reserve())
print(obj.reserve())
obj.unreserve(2)
obj.unreserve(5)
print(obj.reserve())
print(obj.reserve())

ইনপুট

obj = SeatReserveManager(7)
print(obj.reserve())
print(obj.reserve())
print(obj.reserve())
obj.unreserve(2)
obj.unreserve(5)
print(obj.reserve())
print(obj.reserve())

আউটপুট

1 2 3 2 5

  1. পাইথন প্রোগ্রাম কিভাবে চালাবেন?

  2. bool() পাইথন প্রোগ্রামে

  3. কলযোগ্য() পাইথন প্রোগ্রামে

  4. রক পেপার সিজার গেম বাস্তবায়নের জন্য পাইথন প্রোগ্রাম