สมมติว่าเรามีรายการพิกัดในระนาบคาร์ทีเซียน เราต้องตรวจสอบว่าพิกัดนั้นเป็นส่วนที่เป็นเส้นตรงหรือไม่
ดังนั้น หากอินพุตเป็นเหมือนพิกัด =[(5, 5),(8, 8),(9, 9)] ผลลัพธ์จะเป็น True เนื่องจากจุดเหล่านี้สร้างส่วนของเส้นตรงที่มีความชัน 1
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- (x0, y0) :=พิกัด[0]
- (x1, y1) :=พิกัด[1]
- สำหรับ i ในช่วง 2 ถึงขนาดของรายการพิกัด - 1 ทำ
- (x, y) :=พิกัด[i]
- ถ้า (x0 - x1) * (y1 - y) ไม่เหมือนกับ (x1 - x) * (y0 - y1) แล้ว
- คืนค่าเท็จ
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, coordinates): (x0, y0), (x1, y1) = coordinates[0], coordinates[1] for i in range(2, len(coordinates)): x, y = coordinates[i] if (x0 - x1) * (y1 - y) != (x1 - x) * (y0 - y1): return False return True ob = Solution() coordinates = [[5, 5],[8, 8],[9, 9]] print(ob.solve(coordinates))
อินพุต
[[5, 5],[8, 8],[9, 9]]
ผลลัพธ์
True