ধরুন, আমাদেরকে একটি ব্যবধানের সেট দেওয়া হয়েছে যা মান (a,b) নিয়ে গঠিত যেখানে a শুরুর সময় এবং b একটি ইভেন্টের শেষ সময়কে প্রতিনিধিত্ব করে। আমাদের কাজ হল এই সেটের মধ্যে অন্য কোনও ব্যবধান সম্পূর্ণভাবে ওভারল্যাপ করে কিনা তা পরীক্ষা করা। যদি কোনো ব্যবধান ওভারল্যাপ হয়, তাহলে আমরা ফলাফলটিকে সত্য হিসাবে ফেরত দিই, অন্যথায় আমরা মিথ্যা ফেরত দিই।
সুতরাং, যদি ইনপুটটি [(4,6), (10,12), (7,9), (13,16)] এর মত হয়, তাহলে আউটপুটটি False হবে। ইনপুট যদি [(4,6), (4,9), (7,11), (5,8)] এর মত হয়, তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- তালিকা ব্যবধান বাছাই
- আমি রেঞ্জ 1 থেকে ব্যবধানের আকারের জন্য, করুন
- যদি বিরতি হয়[i, 1] <=ব্যবধান[i- 1, 1], তাহলে
- সত্য ফেরান
- মিথ্যে ফেরত দিন
- যদি বিরতি হয়[i, 1] <=ব্যবধান[i- 1, 1], তাহলে
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(intervals): intervals.sort() for i in range(1, len(intervals)): if intervals[i][1] <= intervals[i- 1][1]: return True return False intervals = [(4,6),(10,12),(7,9),(13,16)] intervals2 = [(4,6), (4,9), (7,11), (5,8)] print(solve(intervals)) print(solve(intervals2))
ইনপুট
[(4,6),(10,12),(7,9),(13,16)] [(4,6), (4,9), (7,11), (5,8)]
আউটপুট
False True