Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Vehicle Tolls

Charge tolls for motorbikes, cars and trucks where trucks extend the basic vehicle rule with axles.

Bạn sẽ học được gì

  • Reuse a parent's rule in a subclass
  • Add extra cost on top of a base rate
  • Pick the right class from a description

Đề bài

Xem bản dịch

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ụ

Ví dụ 1
Đầ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.

Ví dụ 2
Đầ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.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.