请你给一个停车场设计一个停车系统。停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位。

请你实现 ParkingSystem 类:

  • ParkingSystem(int big, int medium, int small)初始化ParkingSystem类,三个参数分别对应每种停车位的数目。
  • bool addCar(int carType) 检查是否有carType对应的停车位。 carType有三种类型:大,中,小,分别用数字 1, 2 和 3 表示。一辆车只能停在carType对应尺寸的停车位中。如果没有空车位,请返回 false ,否则将该车停入车位并返回 true 。

示例 1

  1. 输入:
  2. ["ParkingSystem", "addCar", "addCar", "addCar", "addCar"]
  3. [[1, 1, 0], [1], [2], [3], [1]]
  4. 输出:
  5. [null, true, true, false, false]
  6. 解释:
  7. ParkingSystem parkingSystem = new ParkingSystem(1, 1, 0);
  8. parkingSystem.addCar(1); // 返回 true ,因为有 1 个空的大车位
  9. parkingSystem.addCar(2); // 返回 true ,因为有 1 个空的中车位
  10. parkingSystem.addCar(3); // 返回 false ,因为没有空的小车位
  11. parkingSystem.addCar(1); // 返回 false ,因为没有空的大车位,唯一一个大车位已经被占据了


提示

  • 0 <= big, medium, small <= 1000
  • carType 取值为 1, 2 或 3
  • 最多会调用addCar函数 1000 次

题解

今天这题没什么可说的,超级简单!但是需要代码更简洁一些!

这是自己写的:

  1. class ParkingSystem:
  2. def __init__(self, big: int, medium: int, small: int):
  3. self.l = big
  4. self.m = medium
  5. self.s = small
  6. def addCar(self, carType: int) -> bool:
  7. if carType == 1:
  8. if self.l == 0:
  9. return False
  10. else :
  11. self.l = self.l - 1
  12. return True
  13. elif carType == 2:
  14. if self.m == 0:
  15. return False
  16. else :
  17. self.m = self.m - 1
  18. return True
  19. else:
  20. if self.s == 0:
  21. return False
  22. else :
  23. self.s = self.s - 1
  24. return True
  25. # Your ParkingSystem object will be instantiated and called as such:
  26. # obj = ParkingSystem(big, medium, small)
  27. # param_1 = obj.addCar(carType)

看看别人的,代码还需多写,多思考:

class ParkingSystem(object):

    def __init__(self, big, medium, small):
        self.park = [0, big, medium, small]

    def addCar(self, carType):
        if self.park[carType] == 0:
            return False
        self.park[carType] -= 1
        return True