Parking Lot

Create a ParkingLot class that manages the parking of cars. This class has several functionalities: it should be able to park a car, release a car, and report the number of parking spots left.
Create a Car class that represents a car that can be parked in the parking lot.
You need to implement the following:
  • A Car class, with a car_id attribute: should be provided when the car object is created. All the following operations should take into account the car_id.
  • A ParkingLot class with:
    • total_spots attribute: the total number of parking spots in the parking lot, which should be provided when the parking lot object is created.
    • park(car) method: parks a Car in the parking lot. If the parking lot is full, it should raise an exception saying Parking lot is full.
    • release(car) method: releases a Car from the parking lot. If the car is not in the parking lot, it should print Car not found in the parking lot.
    • spots_left() method: returns an integer representing the number of available parking spots in the parking lot.
Input
Output
car1 = Car(1); car2 = Car(2); lot = ParkingLot(2); print(lot.spots_left()); lot.park(car1); print(lot.spots_left()); lot.park(car2); print(lot.spots_left()); lot.release(car1); print(lot.spots_left());
2 1 0 1
car1 = Car(1); car2 = Car(2); lot = ParkingLot(1); print(lot.spots_left()); lot.release(car1); print(lot.spots_left()); lot.park(car1); print(lot.spots_left()); lot.park(car2); print(lot.spots_left())
1 Car not found in the parking lot 1 0 Parking lot is full 0
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in