With inheritance, a subclass reuses its parent's behaviour and adds its own. За каждое транспортное средство взимается плата за проезд; грузовик — это транспортное средство, которое платит дополнительно за свои оси.
Each vehicle is one of:
motorbike: pays 2.car: pays 5.truck <axles>: pays the car rate 5, plus 3 for every axle beyond the first two.
Implement vehicle_tolls(vehicles).
Input
vehicles: Транспортные средства, проходящие через пункт оплаты.
Output
Return the total toll collected.
Ограничения
0 ≤ число транспортных средств ≤ 100,000
2 ≤ число осей ≤ 10
Примеры
Ввод:
vehicles = ["car", "motorbike", "truck 4"]
Ожидаемый вывод:
expected = 18
Ввод:
std::vector<std::string> vehicles = {"car", "motorbike", "truck 4"};
Ожидаемый вывод:
long long expected = 18;
Ввод:
string[] vehicles = new string[] {"car", "motorbike", "truck 4"};
Ожидаемый вывод:
long expected = 18;
Пояснение
5 + 2 + (5 + 3 × 2) = 18.
Ввод:
vehicles = ["truck 2", "truck 3"]
Ожидаемый вывод:
expected = 13
Ввод:
std::vector<std::string> vehicles = {"truck 2", "truck 3"};
Ожидаемый вывод:
long long expected = 13;
Ввод:
string[] vehicles = new string[] {"truck 2", "truck 3"};
Ожидаемый вывод:
long expected = 13;
Пояснение
Грузовик с 2 осями платит только тариф легковой машины 5; с 3 осями — 5 + 3 = 8. Итого 13.
Как подступиться
Сначала попробуйте сами, затем открывайте подсказки по одной.
Подсказка 1
Начните с тарифа легковой машины 5 и корректируйте по типу транспорта.
Подсказка 2
Грузовик доплачивает только за оси сверх первых двух.
Подсказка 3
Мотоциклы заменяют базовое правило фиксированной платой 2.
Ожидаемая сложность
время O(число машин), доп. память O(1)
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.