मान लीजिए आप एक पार्किंग सिस्टम डिजाइन करना चाहते हैं। एक पार्किंग स्थल में तीन अलग-अलग प्रकार के पार्किंग स्थान होते हैं - बड़ा, मध्यम और छोटा। और प्रत्येक आकार के लिए निश्चित संख्या में स्लॉट हैं। दो तरीकों से OurParkingSystem नाम की एक क्लास बनाएं -
-
कन्स्ट्रक्टर(बड़ा, मध्यम, छोटा) - यह कंस्ट्रक्टर विभिन्न स्थानों के लिए उपलब्ध स्लॉट की संख्या ले रहा है और OurParkingSystem क्लास के ऑब्जेक्ट को इनिशियलाइज़ करता है।
-
AddCar(carType) - यह विधि जांचती है कि क्या कार के लिए पार्किंग की जगह है जो पार्किंग के अंदर रखना चाहती है।
तीन स्लॉट बड़े, मध्यम या छोटे, क्रमशः 1, 2 और 3 द्वारा दर्शाए जाते हैं। बाधा यह है कि कार केवल पार्किंग स्थान में ही पार्क की जा सकती है यदि कार टाइप का मिलान किया जाता है। यदि कोई स्थान उपलब्ध नहीं है, तो झूठी वापसी करें, अन्यथा उस आकार की जगह में कार पार्क करें और सही लौटें।
यदि बड़ी कार के लिए 2 स्थान हैं, मध्यम कार के लिए कोई स्थान नहीं है और छोटी कार के लिए 1 स्थान है, तो कंस्ट्रक्टर कॉल OurParkingSystem(2, 0, 1) की तरह होगी, और यदि हम AddCar को -
कहते हैंऐडकार(3) - एक छोटी कार जोड़ें और सही लौटें
ऐडकार(2) - मध्यम कार जोड़ने के लिए कोई जगह नहीं है इसलिए झूठी वापसी करें
ऐडकार(3) - नई छोटी कार जोड़ने के लिए जगह नहीं है, इसलिए झूठी वापसी करें
ऐडकार(1) − एक बड़ी कार जोड़ें और सही लौटें
ऐडकार(1) - एक और बड़ी कार जोड़ें और सही लौटें
ऐडकार(1) - दूसरी बड़ी कार के लिए जगह नहीं है, इसलिए झूठी वापसी करें
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
फ़ंक्शन कंस्ट्रक्टर () को परिभाषित करें। इसमें बड़ा, मध्यम, छोटा लगेगा
-
sp:=एक सूची जैसे [0,बड़ा,मध्यम,छोटा]
-
फ़ंक्शन addCar() को परिभाषित करें। यह कार टाइप लेगा
-
अगर sp[carType]> 0, तो
-
एसपी [कार टाइप]:=एसपी [कार टाइप] - 1
-
सही लौटें
-
-
झूठी वापसी
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
class OurParkingSystem: def __init__(self, big, medium, small): self.sp = [0,big,medium,small] def addCar(self, carType): if(self.sp[carType] >0 ): self.sp[carType] -= 1 return True return False ps = OurParkingSystem(2, 0, 1) print(ps.addCar(3)) print(ps.addCar(2)) print(ps.addCar(3)) print(ps.addCar(1)) print(ps.addCar(1)) print(ps.addCar(1))
इनपुट
ps.addCar(3) ps.addCar(2) ps.addCar(3) ps.addCar(1) ps.addCar(1) ps.addCar(1)
आउटपुट
True False False True True False