請你給一個停車場設計一個停車系統。停車場總共有三種不同大小的車位:大,中和小,每種尺寸分别有固定數目的車位。
請你實作 ParkingSystem 類:
ParkingSystem(int big, int medium, int small) 初始化 ParkingSystem 類,三個參數分别對應每種停車位的數目。
bool addCar(int carType) 檢查是否有 carType 對應的停車位。 carType 有三種類型:大,中,小,分别用數字 1, 2 和 3 表示。一輛車隻能停在 carType 對應尺寸的停車位中。如果沒有空車位,請傳回 false ,否則将該車停入車位并傳回 true 。
示例 1:
輸入:
["ParkingSystem", "addCar", "addCar", "addCar", "addCar"]
[[1, 1, 0], [1], [2], [3], [1]]
輸出:
[null, true, true, false, false]
解釋:
ParkingSystem parkingSystem = new ParkingSystem(1, 1, 0);
parkingSystem.addCar(1); // 傳回 true ,因為有 1 個空的大車位
parkingSystem.addCar(2); // 傳回 true ,因為有 1 個空的中車位
parkingSystem.addCar(3); // 傳回 false ,因為沒有空的小車位
parkingSystem.addCar(1); // 傳回 false ,因為沒有空的大車位,唯一一個大車位已經被占據了
提示:
0 <= big, medium, small <= 1000
carType 取值為 1, 2 或 3
最多會調用 addCar 函數 1000 次
水題壓驚:
#include <iostream>
using namespace std;
class ParkingSystem {
public:
ParkingSystem(int big, int medium, int small) {
bigNum = big;
mediumNum = medium;
smallNum = small;
}
bool addCar(int carType) {
int isSucc = false;
switch (carType)
{
case 1:
if (bigNum > 0) {
bigNum--;
isSucc = true;
}
break;
case 2:
if (mediumNum > 0) {
mediumNum--;
isSucc = true;
}
break;
case 3:
if (smallNum > 0) {
smallNum--;
isSucc = true;
}
break;
default:
printf("unknow cartype:%d", carType);
break;
}
return isSucc;
}
private:
int bigNum;
int mediumNum;
int smallNum;
};