用Python实现座位预订管理器的程序

假设我们必须设计一个系统来管理 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。

示例

让我们看看以下实现以获得更好的理解 -

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

以上是 用Python实现座位预订管理器的程序 的全部内容, 来源链接: utcz.com/z/327425.html

回到顶部