কম্পিউটার

পাইথনে কাটা ব্যবধানকে ছেদ করে না এমন বিরতি খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি বাছাই করা এবং বিচ্ছিন্ন ব্যবধানের তালিকা এবং আরেকটি তালিকা কাটা আছে, যা একটি ব্যবধানকে প্রতিনিধিত্ব করে। কাটা ব্যবধানের সাথে ছেদ করা অন্তরের সমস্ত অংশ আমাদের মুছে ফেলতে হবে এবং নতুন তালিকা ফিরিয়ে দিতে হবে।

সুতরাং, ইনপুট যদি অন্তরের মত হয় =[[2, 11],[13, 31],[41, 61]] কাট =[8, 46], তাহলে আউটপুট হবে [[2, 8], [46] , 61]]

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

  • cut_start, cut_end :=কাট
  • উত্তর :=একটি নতুন তালিকা
  • প্রতিটি শুরুর জন্য, বিরতিতে শেষ করুন, করুন
    • যদি সর্বাধিক কাট_স্টার্ট এবং শুরু হয় <সর্বনিম্ন শেষ এবং কাট_এন্ড, তাহলে
      • যদি শুরু হয়
      • উত্তরগুলিতে ব্যবধান [start, cut_start] সন্নিবেশ করান
    • যদি শেষ> কাট_এন্ড, তারপর
      • উত্তরগুলিতে ব্যবধান [cut_end, end] সন্নিবেশ করুন
  • অন্যথায়,
  • উত্তর ফেরত দিন
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    শ্রেণীর সমাধান:def solve(self, intervals, cut):cut_start, cut_end =cut ans =[] শুরুর জন্য, ব্যবধানে শেষ:যদি সর্বোচ্চ(cut_start, start)  cut_end:ans.append([cut_end, end]) else:ans.append([start, end]) return ansob =Solution()intervals =[[2 , 11],[13, 31],[41, 61]] cut =[8, 46]print(ob.solve(intervals, cut))

    ইনপুট

    <প্রে>[[2, 11],[13, 31],[41, 61]], [8, 46]

    আউটপুট

    [[2, 8], [46, 61]]

    1. পাইথন ব্যবহার করে একই x বা y স্থানাঙ্ক আছে এমন নিকটতম বিন্দু খুঁজে বের করার প্রোগ্রাম

    2. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

    3. একটি ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে পাইথন প্রোগ্রাম

    4. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম