ধরুন এখানে একটি আয়তক্ষেত্র রয়েছে যা একটি তালিকা [x1, y1, x2, y2] হিসাবে উপস্থাপন করা হয়েছে, যেখানে (x1, y1) হল তার নীচে-বাম কোণের স্থানাঙ্ক এবং (x2, y2) হল তার উপরের স্থানাঙ্ক। ডানের কিনারা. এখন দুটি আয়তক্ষেত্র ওভারল্যাপ করে যদি তাদের ছেদটির ক্ষেত্রফল ধনাত্মক হয়। সুতরাং, আমরা বুঝতে পারি যে দুটি আয়তক্ষেত্র যা শুধুমাত্র কোণে বা প্রান্তে স্পর্শ করে ওভারল্যাপ হয় না।
যদি আমাদের দুটি (অক্ষ-সারিবদ্ধ) আয়তক্ষেত্র থাকে, তাহলে সেগুলি ওভারল্যাপ করছে কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুট হয় R1 =[0,0,2,2], R2 =[1,1,3,3], তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি R1[0]>=R2[2] বা R1[2]<=R2[0] বা R1[3]<=R2[1] বা R1[1]>=R2[3], তাহলে
- মিথ্যে ফেরত দিন
- অন্যথায়,
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def isRectangleOverlap(self, R1, R2): if (R1[0]>=R2[2]) or (R1[2]<=R2[0]) or (R1[3]<=R2[1]) or (R1[1]>=R2[3]): return False else: return True ob = Solution() print(ob.isRectangleOverlap([0,0,2,2],[1,1,3,3]))
ইনপুট
[0,0,2,2],[1,1,3,3]
আউটপুট
True