Problema
Con inheritance, una subclase reutiliza el comportamiento de su clase padre y añade el suyo propio. Cada vehículo paga un peaje; un camión es un vehículo que paga extra por sus ejes.
Cada vehículo es uno de:
motorbike: paga 2.car: paga 5.truck <axles>: paga la tarifa de coche 5, más 3 por cada eje más allá de los dos primeros.
Implementa vehicle_tolls(vehicles).
Entrada
vehicles: Los vehículos que pasan por la cabina de peaje.
Salida
Devuelve el peaje total recaudado.
Restricciones
0 ≤ número de vehículos ≤ 100,000
2 ≤ ejes ≤ 10
Ejemplos
Entrada:
vehicles = ["car", "motorbike", "truck 4"]
Salida esperada:
expected = 18
Entrada:
std::vector<std::string> vehicles = {"car", "motorbike", "truck 4"};
Salida esperada:
long long expected = 18;
Entrada:
string[] vehicles = new string[] {"car", "motorbike", "truck 4"};
Salida esperada:
long expected = 18;
Explicación
5 + 2 + (5 + 3 × 2) = 18.
Entrada:
vehicles = ["truck 2", "truck 3"]
Salida esperada:
expected = 13
Entrada:
std::vector<std::string> vehicles = {"truck 2", "truck 3"};
Salida esperada:
long long expected = 13;
Entrada:
string[] vehicles = new string[] {"truck 2", "truck 3"};
Salida esperada:
long expected = 13;
Explicación
Un camión de 2 ejes paga solo la tarifa de coche 5; un camión de 3 ejes paga 5 + 3 = 8. Total 13.
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Empieza por la tarifa de coche de 5 y ajústala según el tipo de vehículo.
Pista 2
Un camión solo paga extra por los ejes que pasan de los dos primeros.
Pista 3
Las motos sustituyen la regla base por un fijo de 2.
Complejidad esperada
tiempo O(número de vehículos), espacio extra O(1)
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.