Đề bài
With inheritance, a subclass reuses its parent's behaviour and adds its own. Every vehicle pays a toll; a truck is a vehicle that pays extra for its axles.
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: The vehicles passing the toll gate.
Output
Return the total toll collected.
Ràng buộc
0 ≤ number of vehicles ≤ 100,000
2 ≤ axles ≤ 10
Ví dụ
Đầu vào:
vehicles = ["car", "motorbike", "truck 4"]
Kết quả mong đợi:
expected = 18
Đầu vào:
std::vector<std::string> vehicles = {"car", "motorbike", "truck 4"};
Kết quả mong đợi:
long long expected = 18;
Đầu vào:
string[] vehicles = new string[] {"car", "motorbike", "truck 4"};
Kết quả mong đợi:
long expected = 18;
Giải thích
5 + 2 + (5 + 3 × 2) = 18.
Đầu vào:
vehicles = ["truck 2", "truck 3"]
Kết quả mong đợi:
expected = 13
Đầu vào:
std::vector<std::string> vehicles = {"truck 2", "truck 3"};
Kết quả mong đợi:
long long expected = 13;
Đầu vào:
string[] vehicles = new string[] {"truck 2", "truck 3"};
Kết quả mong đợi:
long expected = 13;
Giải thích
A 2-axle truck pays just the car rate 5; a 3-axle truck pays 5 + 3 = 8. Total 13.
Hướng tiếp cận
Hãy tự thử trước, sau đó mở từng gợi ý một.
Gợi ý 1
Start from the car rate of 5 and adjust per vehicle type.
Gợi ý 2
A truck pays extra only for axles beyond the first two.
Gợi ý 3
Motorbikes override the base rule with a fixed 2.
Độ phức tạp mong đợi
O(number of vehicles) time, O(1) extra space
Tham khảo
Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.