aboutsummaryrefslogtreecommitdiff
path: root/seat_reservation_manager.py
diff options
context:
space:
mode:
Diffstat (limited to 'seat_reservation_manager.py')
-rw-r--r--seat_reservation_manager.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/seat_reservation_manager.py b/seat_reservation_manager.py
new file mode 100644
index 0000000..41f3b0f
--- /dev/null
+++ b/seat_reservation_manager.py
@@ -0,0 +1,25 @@
+# 1845. Seat Reservation Manager
+
+"""
+design a system that manages the reservation state of 'n' seats that are
+numbered 1 to 'n'. implement the 'SeatManager' class
+- seatManagerCreate(int n) initalises a SeatManager object that will manage
+'n' seats numbered from 1 to 'n'. all seats are initially available
+- seatManagerReserve() fetches the smallest-numbered unreserved seat,
+reserves it, and returns its number
+- seatManagerUnreserve(int seat_num) unreserves the seat with the given
+'seat_num'
+"""
+
+import heapq
+
+
+class SeatManager(object):
+ def __init__(self, n):
+ self.heap = list(range(1, n + 1))
+
+ def reserve(self):
+ return heapq.heappop(self.heap)
+
+ def unreserve(self, seatNumber):
+ heapq.heappush(self.heap, seatNumber)