ধরুন আমাদের দুটি সংস্করণ সংখ্যা সংস্করণ 1 এবং সংস্করণ 2 তুলনা করতে হবে৷ যদি version1> version2 হয় তাহলে রিটার্ন 1; অন্যথায় যখন version1
আমরা ধরে নিতে পারি একটি সংস্করণ নম্বরের প্রতিটি স্তরের জন্য ডিফল্ট পুনর্বিবেচনা নম্বরটি 0। উদাহরণস্বরূপ, সংস্করণ নম্বর 3.4 এর প্রথম এবং দ্বিতীয় স্তরের সংশোধন নম্বরের জন্য 3 এবং 4 এর একটি সংশোধন নম্বর রয়েছে। এর তৃতীয় এবং চতুর্থ স্তরের সংশোধন সংখ্যা উভয়ই 0।
সুতরাং যদি ইনপুটটি সংস্করণ 1 ="1.0.1" এবং সংস্করণ 2 ="1" এর মতো হয়, তবে এটি +1 ফেরত দেবে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
version1_arr =সংস্করণ1
version2_arr =সংস্করণ2
আমার জন্য 0 থেকে সর্বোচ্চ সংস্করণ 1_arr এর আকার এবং সংস্করণ2_arr -
v1 :=version1_arr[i] যদি i
v2 :=version2_arr[i] যদি 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