Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบว่าสี่เหลี่ยมสองรูปทับซ้อนกันหรือไม่ใน Python

สมมติว่ามีสี่เหลี่ยมแทนด้วยรายการสี่ค่า [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] แล้ว คืนค่า False
  • มิฉะนั้น คืนค่า True

ตัวอย่างโค้ด

class Solution:
    def solve(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.solve([0,0,3,3], [1,1,4,4]))

อินพุต

[0,0,3,3],[1,1,4,4]

เอาต์พุต

True