কম্পিউটার টিউটোরিয়াল

পাইথনে ভার্সন নম্বর তুলনা করুন

দুটি ভার্সন নম্বর 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
  1. পাইথনে ফার্স্ট ব্যাড ভার্সন

  2. পাইথনে কমপ্লেক্স নম্বর

  3. পাইথনে র‍্যান্ডম নম্বর (Random Numbers)

  4. পাইথনে সংখ্যা তুলনা করার রিলেশনাল অপারেটর গাইড