ধরুন আমাদের দুটি সংস্করণ সংখ্যা সংস্করণ 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