假设您要设计一个停车系统。一个停车场有三种不同的停车位——大、中、小。每个尺寸都有固定数量的插槽。使用两种方法创建一个名为 OurParkingSystem 的类 -
constructor(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
让我们看看以下实现以获得更好的理解 -
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