समस्या
inheritance के साथ, एक subclass अपने parent के behaviour का पुन: उपयोग करती है और अपना behaviour जोड़ती है। हर vehicle एक toll देता है; truck एक vehicle है जो अपने axles के लिए extra भुगतान करता है।
हर vehicle इनमें से एक है:
motorbike: 2 देता है।car: 5 देता है।truck <axles>: car rate 5 देता है, साथ में पहले दो के बाद हर axle के लिए 3 अतिरिक्त देता है।
vehicle_tolls(vehicles) को implement करें।
Input
vehicles: Toll gate से गुजरने वाले vehicles।
Output
कुल collected toll लौटाएँ।
सीमाएँ
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-axle truck केवल car rate 5 देता है; एक 3-axle truck 5 + 3 = 8 देता है। Total 13.
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
कार की दर 5 से शुरू करें और वाहन के प्रकार के अनुसार बदलें।
संकेत 2
ट्रक सिर्फ़ पहले दो एक्सल के बाद वाले एक्सल का अतिरिक्त देता है।
संकेत 3
मोटरबाइक बेस नियम को तय 2 से ओवरराइड करती है।
अपेक्षित जटिलता
समय O(वाहनों की संख्या), अतिरिक्त स्थान O(1)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।