1603.Design Parking System === ###### tags: `Easy`,`Design`,`Counting` [1603. Design Parking System](https://leetcode.com/problems/design-parking-system/) ### 題目描述 Design a parking system for a parking lot. The parking lot has three kinds of parking spaces: big, medium, and small, with a fixed number of slots for each size. Implement the `ParkingSystem` class: * `ParkingSystem(int big, int medium, int small)` Initializes object of the `ParkingSystem` class. The number of slots for each parking space are given as part of the constructor. * `bool addCar(int carType)` Checks whether there is a parking space of `carType` for the car that wants to get into the parking lot. `carType` can be of three kinds: big, medium, or small, which are represented by `1`, `2`, and `3` respectively. **A car can only park in a parking space of its** `carType`. If there is no space available, return `false`, else park the car in that size space and return `true`. ### 範例 **Example 1:** ``` Input ["ParkingSystem", "addCar", "addCar", "addCar", "addCar"] [[1, 1, 0], [1], [2], [3], [1]] Output [null, true, true, false, false] Explanation ParkingSystem parkingSystem = new ParkingSystem(1, 1, 0); parkingSystem.addCar(1); // return true because there is 1 available slot for a big car parkingSystem.addCar(2); // return true because there is 1 available slot for a medium car parkingSystem.addCar(3); // return false because there is no available slot for a small car parkingSystem.addCar(1); // return false because there is no available slot for a big car. It is already occupied. ``` **Constraints**: * 0 <= `big`, `medium`, `small` <= 1000 * `carType` is `1`, `2`, or `3` * At most `1000` calls will be made to `addCar` ### 解答 #### Javascript ```javascript= class ParkingSystem { constructor(big, medium, small) { this.empty = [0, big, medium, small]; } addCar(carType) { if (this.empty[carType] > 0) { this.empty[carType]--; return true; } return false; } } ``` > [name=Marsgoat][time=May 29, 2023] #### Python ```python= class ParkingSystem: def __init__(self, big: int, medium: int, small: int): self.carTypes = [0, big, medium, small] def addCar(self, carType: int) -> bool: self.carTypes[carType] -= 1 return self.carTypes[carType] >= 0 ``` > [name=Ron Chen][time=Mon, May 29, 2023] #### C# ```csharp= public class ParkingSystem { private readonly int[] slots; public ParkingSystem(int big, int medium, int small) { slots = new int[4] {0, big, medium, small}; } public bool AddCar(int carType) { if (slots[carType] > 0) { slots[carType] -= 1; return true; } return false; } } ``` > [name=Jim][time=Mon, May 29, 2023] ### Reference [回到題目列表](https://hackmd.io/@Marsgoat/leetcode_every_day)