कोड-गोल्फर के रूप में, हम ( निश्चित रूप से ) जारी करने के लिए उपयोग नहीं किए जाते हैं । हमें ऐसा करने में मदद करने के लिए कुछ उपकरणों की आवश्यकता होगी।
बेशक, एक नई रिलीज के विपणन में मदद करने के लिए, हमें एक अच्छा और चमकदार रिलीज संस्करण की आवश्यकता है। संस्करण 3.0.0 के बारे में सुनकर कौन उत्तेजित नहीं होता है?
कार्य
आपका कार्य एक संस्करण संख्या बढ़ाने के लिए एक कार्यक्रम / दिनचर्या / ... लिखना होगा।
आपको संस्करण संख्या बढ़ाने और "कम महत्वपूर्ण" वाले (यानी पैच संस्करण) को रीसेट करने की आवश्यकता है।
आपको दो तर्क मिलते हैं: वर्तमान संस्करण (उदाहरण के लिए "1.0.3") एक स्ट्रिंग के रूप में, और यह जानने के लिए कि कौन सा इंडेक्स (0 या 1-इंडेक्स किया गया है)।
उदाहरण, 0-अनुक्रमित:
next-version("1.0.3", 0) # 2.0.0
next-version("1.2.3.4.5", 2) # 1.2.4.0.0
next-version("10.0", 0) # 11.0
next-version("3", 0) # 4
next-version("1", 7) # ERROR
next-version("01", 0) # ERROR
संस्करण एक स्ट्रिंग है, प्रत्येक भाग एक संख्या है, जिसे डॉट के साथ अलग किया जाता है। कोई अग्रणी, कोई अनुगामी या कोई निरंतर डॉट्स नहीं हो सकता है (और संख्याओं / डॉट्स के बाहर कुछ भी नहीं)। संस्करण स्ट्रिंग के आकार की कोई सीमा नहीं है।
^[1-9]\d*(\.[1-9]\d*)*$
त्रुटि मामला (अंतिम दो उदाहरण) अपरिभाषित व्यवहार है। गलत इनपुट के मामले में क्या होता है, इस चुनौती की कोई प्रासंगिकता नहीं है।
हमेशा की तरह, मानक कमियां निषिद्ध हैं। आपको स्ट्रिंग को प्रिंट या वापस करने की अनुमति है।