Problème
Avec l'héritage, une sous-classe réutilise le comportement de sa classe parente et y ajoute le sien. Chaque véhicule paie un péage ; un camion est un véhicule qui paie un supplément pour ses essieux.
Chaque véhicule est l'un des suivants :
motorbike: paie 2.car: paie 5.truck <axles>: paie le tarif de la voiture 5, plus 3 pour chaque essieu au-delà des deux premiers.
Implémentez vehicle_tolls(vehicles).
Entrée
vehicles: Les véhicules qui passent au péage.
Sortie
Retournez le total des péages collectés.
Contraintes
0 ≤ nombre de véhicules ≤ 100,000
2 ≤ essieux ≤ 10
Exemples
Entrée :
vehicles = ["car", "motorbike", "truck 4"]
Sortie attendue :
expected = 18
Entrée :
std::vector<std::string> vehicles = {"car", "motorbike", "truck 4"};
Sortie attendue :
long long expected = 18;
Entrée :
string[] vehicles = new string[] {"car", "motorbike", "truck 4"};
Sortie attendue :
long expected = 18;
Explication
5 + 2 + (5 + 3 × 2) = 18.
Entrée :
vehicles = ["truck 2", "truck 3"]
Sortie attendue :
expected = 13
Entrée :
std::vector<std::string> vehicles = {"truck 2", "truck 3"};
Sortie attendue :
long long expected = 13;
Entrée :
string[] vehicles = new string[] {"truck 2", "truck 3"};
Sortie attendue :
long expected = 13;
Explication
Un camion à 2 essieux paie seulement le tarif de la voiture 5 ; un camion à 3 essieux paie 5 + 3 = 8. Total 13.
Comment l'aborder
Essayez d'abord seul, puis ouvrez les indices un par un.
Indice 1
Partez du tarif voiture de 5 et ajustez selon le type de véhicule.
Indice 2
Un camion ne paie un supplément que pour les essieux au-delà des deux premiers.
Indice 3
Les motos remplacent la règle de base par un tarif fixe de 2.
Complexité attendue
temps O(nombre de véhicules), espace supplémentaire O(1)
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.