Python中的停车系统设计程序
假设你想设计一个停车系统。一个停车场有三种不同的停车位——大型、中型和小型。而且每种大小的停车位都有固定数量的槽位。创建一个名为OurParkingSystem的类,其中包含两个方法−
- 构造函数(big, medium, small) − 这个构造器接收不同空间的可用槽位数量,并初始化OurParkingSystem类的对象。
-
addCar(carType) − 此方法检查是否存在给定carType的停车位,以便车辆进入停车场。
三个槽位大、中、小,分别由1、2和3表示。限制是只有当carType匹配时,汽车才能停在停车位上。如果没有可用的空间,返回false,否则将车停在该大小的空间上并返回true。
如果有2个大车的空间、没有中车的空间和1个小车的空间,那么构造函数调用将像 OurParkingSystem(2, 0, 1) 这样,如果我们调用 addCar 像 −
addCar(3) − 添加一个小车并返回 true
addCar(2) − 无空间添加中型车,因此返回 false
addCar(3) − 没有空间添加新的小车,因此返回false
addCar(1) − 添加一个大型车并返回 true
addCar(1) − 添加另一个大型车并返回 true
addCar(1) − 没有空间添加另一个大型车,因此返回 false
为了解决这个问题,我们将按照以下步骤进行−
- 定义一个构造函数constructor()。它将取大、中、小
-
sp := 一个类似于 [0,大,中,小] 的列表
-
定义一个函数 addCar() 。它将取carType。
-
如果sp[carType] > 0,则
- sp[carType] := sp[carType] – 1
-
返回True
-
返回false
更多Python相关文章,请阅读:Python 教程
示例(Python)
看以下实现以更好地理解−
class OurParkingSystem:
def __init__(self, big, medium, small):
self.sp = [0,big,medium,small]
def addCar(self, carType):
if(self.sp[carType] >0 ):
self.sp[carType] -= 1
return True
return False
ps = OurParkingSystem(2, 0, 1)
print(ps.addCar(3))
print(ps.addCar(2))
print(ps.addCar(3))
print(ps.addCar(1))
print(ps.addCar(1))
print(ps.addCar(1))
输入
ps.addCar(3)
ps.addCar(2)
ps.addCar(3)
ps.addCar(1)
ps.addCar(1)
print(ps.addCar(1))
输出
True
False
False
True
True
False