用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
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下