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

পাইথনে ইন্টারভাল মার্জ করে অ্যাসেন্ডিং অর্ডারে রিটার্ন করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি ইন্টারভালের তালিকা intervals আছে। আমাদের কাজ হল সেগুলোর ইউনিয়ন (union) বের করে সর্টেড সিকোয়েন্সে রিটার্ন করা।

উদাহরণস্বরূপ, যদি ইনপুট হয় inv = [[2, 5],[4, 10],[20, 25]], তবে আউটপুট হবে [[2, 10], [20, 25]]।

সমাধানের ধাপসমূহ:
  • intervals তালিকাটি সর্ট করুন।
  • ans := []
  • প্রতিটি (s, e) এর জন্য intervals-এ:
    • যদি ans খালি না হয় এবং s <= ans[-1][1] হয়, তবে:
      • ans[-1][1] := max(ans[-1][1], e)
    • অন্যথায়, [s, e] কে ans-এ ঢুকান।
  • ans রিটার্ন করুন।
উদাহরণ কোড
class Solution:
    def solve(self, intervals):
        intervals.sort()
        ans = []
        for s, e in intervals:
            if ans and s <= ans[-1][1]:
                ans[-1][1] = max(ans[-1][1], e)
            else:
                ans.append([s, e])
        return ans

ob = Solution()
inv = [[2, 5],[4, 10],[20, 25]]
print(ob.solve(inv))
ইনপুট
[[2, 5],[4, 10],[20, 25]]
আউটপুট
[[2, 10], [20, 25]]
  1. মার্জ সর্টের পাইথন প্রোগ্রাম

  2. পাইথনে ইটেরেটিভ মার্জ সর্ট প্রোগ্রাম

  3. পাইথনে সিলেকশন সর্ট (Selection Sort)

  4. পাইথনে বাক্যের শব্দগুলো ক্রমবর্ধমান কন্ডিশনে সর্ট করার প্রোগ্রাম