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

পাইথনে কর্পোরেট ফ্লাইট বুকিং সমস্যা সমাধান

n সংখ্যক ফ্লাইট আছে, 1 থেকে n পর্যন্ত লেবেলড। ফ্লাইট বুকিংয়ের একটি লিস্ট দেওয়া আছে। i-তম বুকিং bookings[i] = [i, j, k] মানে ফ্লাইট i থেকে j পর্যন্ত (ইনক্লूसিভ) k সিট বুক করা হয়েছে। n দৈর্ঘ্যের একটি অ্যারে রিটার্ন করতে হবে যেটিতে প্রতিটি ফ্লাইটে কত সিট বুক আছে তা দেখানো থাকবে।

ইনপুট [[1,2,10],[2,3,20],[2,5,25]] এবং n = 5 হলে আউটপুট হবে [10, 55, 45, 25, 25]।

সমাধানের ধাপসমূহ

  • res := n সাইজের অ্যারে 0 দিয়ে ফিল করুন
  • প্রতিটি বুকিং এন্ট্রি i এর জন্য:
    • res[i[0] - 1] += i[2]
    • যদি i[1] < n হয়, তবে res[i[1]] -= i[2]
  • 1 থেকে n-1 পর্যন্ত লুপে res[i] += res[i-1]
  • res রিটার্ন করুন

উদাহরণ

class Solution(object):
    def corpFlightBookings(self, bookings, n):
        res = [0 for i in range(n)]
        for i in bookings:
            res[i[0]-1] += i[2]
            if i[1] < n:
                res[i[1]] -= i[2]
        for i in range(1, n):
            res[i] += res[i-1]
        return res

ob = Solution()
print(ob.corpFlightBookings([[1,2,10],[2,3,20],[2,5,25]], 5))

ইনপুট

[[1,2,10],[2,3,20],[2,5,25]] 5

আউটপুট

[10, 55, 45, 25, 25]
  1. পাইথনে issuperset() ফাংশন

  2. পাইথনে callable() ফাংশন

  3. পাইথনে আন্ডারস্কোর (_) এর ব্যবহার

  4. পাইথনে Quine প্রোগ্রাম (স্ব-প্রजनনকারী কোড)