Tutte le sfide
Facile 0 risolte 0% di accettazione

Pedaggi dei veicoli

Calcola i pedaggi per motociclette, auto e camion, dove i camion estendono la regola base dei veicoli con gli assi.

Cosa imparerai

  • Riutilizzare la regola del genitore in una sottoclasse
  • Aggiungere un supplemento a una tariffa base
  • Scegliere la classe giusta da una descrizione

Problema

Con l'ereditarietà, una sottoclasse riutilizza il comportamento del padre e aggiunge il proprio. Ogni veicolo paga un pedaggio; un camion è un veicolo che paga un extra per i suoi assi.

Ogni veicolo è uno dei seguenti:

  • motorbike: paga 2.
  • car: paga 5.
  • truck <axles>: paga la tariffa dell'auto 5, più 3 per ogni asse oltre i primi due.

Implementa vehicle_tolls(vehicles).

Input

vehicles: I veicoli che passano al casello.

Output

Restituisci il pedaggio totale incassato.

Vincoli

0 ≤ numero di veicoli ≤ 100,000

2 ≤ assi ≤ 10

Esempi

Esempio 1
Input:
vehicles = ["car", "motorbike", "truck 4"]

Output atteso:
expected = 18
Input:
std::vector<std::string> vehicles = {"car", "motorbike", "truck 4"};

Output atteso:
long long expected = 18;
Input:
string[] vehicles = new string[] {"car", "motorbike", "truck 4"};

Output atteso:
long expected = 18;

Spiegazione

5 + 2 + (5 + 3 × 2) = 18.

Esempio 2
Input:
vehicles = ["truck 2", "truck 3"]

Output atteso:
expected = 13
Input:
std::vector<std::string> vehicles = {"truck 2", "truck 3"};

Output atteso:
long long expected = 13;
Input:
string[] vehicles = new string[] {"truck 2", "truck 3"};

Output atteso:
long expected = 13;

Spiegazione

Un camion a 2 assi paga solo la tariffa dell'auto 5; un camion a 3 assi paga 5 + 3 = 8. Totale 13.

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Parti dalla tariffa auto di 5 e adattala al tipo di veicolo.

Suggerimento 2

Un camion paga un extra solo per gli assi oltre i primi due.

Suggerimento 3

Le moto sostituiscono la regola base con un fisso di 2.

Complessità attesa

tempo O(numero di veicoli), spazio aggiuntivo O(1)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.