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

ตรวจสอบว่าช่วงเวลาใดทับซ้อนกันใน Python . หรือไม่


สมมติว่าเราได้รับชุดของช่วงเวลาที่ประกอบด้วยค่า (a,b) โดยที่ a หมายถึงเวลาเริ่มต้นและ b หมายถึงเวลาสิ้นสุดของเหตุการณ์ งานของเราคือตรวจสอบว่าช่วงเวลาเหล่านี้ทับซ้อนช่วงเวลาอื่นในชุดนี้หรือไม่ หากช่วงเวลาใดคาบเกี่ยวกัน เราจะคืนค่าผลลัพธ์เป็น True ไม่เช่นนั้นเราจะคืนค่าเป็น False

ดังนั้น หากอินพุตเป็น [(4,6), (10,12), (7,9), (13,16)] เอาต์พุตจะเป็นเท็จ หากอินพุตเป็น [(4,6), (4,9), (7,11), (5,8)] ผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • เรียงลำดับรายการช่วงเวลา
  • สำหรับ i ในช่วง 1 ถึงขนาดของช่วงเวลา ทำ
    • ถ้า intervals[i, 1] <=intervals[i- 1, 1] แล้ว
      • คืนค่า True
    • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

def dissolve(intervals):intervals.sort()for i in range(1, len(intervals)):if intervals[i][1] <=intervals[i- 1][1]:return True return Falseintervals =[(4,6),(10,12),(7,9),(13,16)] ช่วง2 =[(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)]

ผลลัพธ์

เท็จจริง