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
为了解决这个问题,我们将遵循以下步骤:
定义一个构造函数()。这将接收big、medium、small。
sp := 一个类似于[0,big,medium,small]的列表
定义一个addCar()函数。这将接收carType
如果sp[carType] > 0,则
sp[carType] := sp[carType] - 1
返回True
返回False
示例 (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) ps.addCar(1)
输出
True False False True True False