দুটি ভার্সন নম্বর version1 এবং version2 তুলনা করতে হবে। যদি version1 > version2 হয় তবে 1 রিটার্ন করবে, version1 < version2 হলে -1, অন্যথায় 0। ভার্সন স্ট্রিং শুধু ডিজিট এবং ডট (.) দিয়ে বানানো থাকে। ডট দশমিক পয়েন্ট নয়, এটি নম্বর সিকোয়েন্স আলাদা করে। উদাহরণস্বরূপ, 2.5 মানে "দুই আড়াই" নয়, বরং দ্বিতীয় ফাস্ট-লেভেল রিভিশনের পঞ্চম সেকেন্ড-লেভেল রিভিশন।
প্রতিটি লেভেলের ডিফল্ট রিভিশন নম্বর ০ মনে করা হয়। উদাহরণস্বরূপ, ভার্সন 3.4-এর প্রথম এবং দ্বিতীয় লেভেল রিভিশন ৩ এবং ৪, তৃতীয় এবং চতুর্থ লেভেল ০।
ইনপুট version1 = "1.0.1" এবং version2 = "1" হলে আউটপুট হবে +1।
সমাধানের ধাপসমূহ
- version1_arr = version1-কে ডট দিয়ে বিভক্ত করে নম্বরের অ্যারে
- version2_arr = version2-কে ডট দিয়ে বিভক্ত করে নম্বরের অ্যারে
- দুই অ্যারের সর্বোচ্চ দৈর্ঘ্য পর্যন্ত লুপ চালান:
- v1 = version1_arr[i] যদি i < size of version1_arr, অন্যথায় 0
- v2 = version2_arr[i] যদি i < size of version2_arr, অন্যথায় 0
- যদি v1 > v2 হয় তবে 1 রিটার্ন, v1 < v2 হলে -1 রিটার্ন
- লুপ শেষ হলে 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