কম্পিউটার

পাইথনে কোন ব্যবধানে কতগুলি কাজ করা হয় তা খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে একটি ব্যবধানের তালিকা রয়েছে যেখানে প্রতিটি ব্যবধান যেমন [শুরু, শেষ) এবং আমাদের কাছে স্ট্রিংগুলির একটি তালিকা রয়েছে যাকে টাইপ বলা হয়। এখন একটি প্রদত্ত i এর জন্য, ব্যবধান[i] দেখায় যে কেউ [শুরু, শেষ) থেকে কাজের ধরনগুলিতে কতবার কাজ করেছে। একই ধরণের দুটি ব্যবধান কখনই ওভারল্যাপ বা স্পর্শ করে না। তাই আমাদের একটি সাজানো মার্জ করা তালিকা খুঁজে বের করতে হবে যেখানে প্রতিটি আইটেমের [start, end, num_types] আছে, শুরু থেকে শেষ পর্যন্ত নির্দেশ করে, num_types সংখ্যক কাজের উপর কাজ করা হচ্ছে।

সুতরাং, যদি ইনপুটটি অন্তরের মত হয় =[ [0, 3], [5, 7], [0, 7] ] প্রকার =["সমস্যা সমাধান", "সংবাদ","গেম প্লে"], তাহলে আউটপুট হবে হও [[0, 3, 2], [3, 5, 1], [5, 7, 2]], যেহেতু আমাদের এই কয়েকটি ধরণের কাজ করা হচ্ছে:[0, 3) "সমস্যা সমাধান" এবং "এর মধ্যে গেম প্লে", [3, 5) "গেম প্লে", এবং [5, 7) "সংবাদ" এবং "গেম প্লে" এর মধ্যে।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ev :=একটি নতুন তালিকা

  • প্রতিটি ব্যবধানের জন্য শুরুর শেষ জোড়া (s, e) বিরতিতে, করুন

    • ev

      এর শেষে (s, 1) সন্নিবেশ করুন
    • ev

      এর শেষে সন্নিবেশ করুন (e, −1)
  • তালিকাটি সাজান ev

  • cnt :=0, শেষ :=−1

  • উত্তর :=একটি নতুন তালিকা

  • ev, do

    -এ প্রতিটি সময় এবং ইভেন্টের (t, inc) বৃদ্ধির প্যারামিটারের জন্য
    • যদি t শেষের মত না হয় এবং cnt 0 এর মত না হয়, তাহলে

      • cnt :=cnt + inc

    • শেষ :=t

  • উত্তর ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, intervals, jobs):
      ev = []
      for s, e in intervals:
         ev.append((s, 1))
         ev.append((e, −1))
      ev.sort()
      cnt = 0
      last = −1
      ans = []
      for t, inc in ev:
         if t != last and cnt != 0:
            ans.append([last, t, cnt])
         cnt += inc
         last = t
      return ans
ob = Solution()
intervals = [
   [0, 3],
   [5, 7],
   [0, 7]
]
types = ["problem solving", "news", "game play"]
print(ob.solve(intervals, types))

ইনপুট

[[0, 3],[5, 7],[0, 7]], ["problem solving", "news", "game play"]

আউটপুট

[[0, 3, 2], [3, 5, 1], [5, 7, 2]]

  1. পাইথনে হাঁটার মাধ্যমে কতগুলি ব্লক কভার হয়েছে তা গণনা করার প্রোগ্রাম

  2. পাইথনের গোডাউনে কতগুলি বাক্স রাখা যায় তা খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম কত কিউব কাটা হয় তা খুঁজে বের করতে

  4. পাইথনে আমরা মোট কত পরিমাণ বৃষ্টি ধরতে পারি তা খুঁজে বের করার প্রোগ্রাম