मान लीजिए कि हमें दो वर्जन नंबर वर्जन1 और वर्जन2 की तुलना करनी है। यदि संस्करण 1> संस्करण 2 तो 1 लौटाएं; अन्यथा जब संस्करण 1 <संस्करण 2 वापसी -1; अन्यथा 0 लौटाएं। हम मान सकते हैं कि संस्करण तार गैर-रिक्त हैं और इसमें केवल अंक और डॉट (।) वर्ण हैं। डॉट वर्ण दशमलव बिंदु का प्रतिनिधित्व नहीं करता है और संख्या अनुक्रमों को अलग करने के लिए उपयोग किया जाता है। इसलिए उदाहरण के लिए, 2.5 "ढाई" या "आधा से संस्करण तीन" नहीं है, यह दूसरे प्रथम-स्तरीय संशोधन का पांचवां द्वितीय-स्तरीय संशोधन है।
हम मान सकते हैं कि संस्करण संख्या के प्रत्येक स्तर के लिए डिफ़ॉल्ट संशोधन संख्या 0 है। उदाहरण के लिए, संस्करण संख्या 3.4 में इसके पहले और दूसरे स्तर के संशोधन संख्या के लिए 3 और 4 की संशोधन संख्या है। इसकी तीसरी और चौथी स्तर की पुनरीक्षण संख्या दोनों 0.
. हैइसलिए यदि इनपुट वर्जन1 ="1.0.1" और वर्जन2 ="1" जैसा है, तो यह +1 लौटाएगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
version1_arr =संस्करण 1 के लिए डॉट द्वारा अलग की गई संख्याओं की एक सरणी
-
version2_arr =संस्करण 2 के लिए डॉट द्वारा अलग की गई संख्याओं की एक सरणी
-
मैं के लिए 0 से अधिकतम version1_arr के आकार और version2_arr के आकार में -
-
v1:=version1_arr[i] अगर मैं
-
v2 :=version2_arr[i] अगर मैं
-
अगर v1> v2, तो 1 लौटाएं, अन्यथा जब v1
-
-
वापसी 0
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution: def compareVersion(self, version1, version2): versions1 = [int(v) for v in version1.split(".")] versions2 = [int(v) for v in version2.split(".")] for i in range(max(len(versions1),len(versions2))): v1 = versions1[i] if i < len(versions1) else 0 v2 = versions2[i] if i < len(versions2) else 0 if v1 > v2: return 1 elif v1 <v2: return -1 return 0 ob1 = Solution() print(ob1.compareVersion("1.0.1","1.0"))
इनपुट
"1.0.1" "1.0"
आउटपुट
1