สมมติว่าเรามีรายการข้อมูล x แทนโดเมน (Domain) และรายการข้อมูล y (ขนาดเท่ากับ x) แทนเรนจ์ (Range) เราต้องตรวจสอบว่า x -> y เป็นฟังก์ชันหรือไม่ โดยพิจารณาว่าทุกสมาชิกใน x และ y เป็นบวก
ตัวอย่างเช่น หาก x = [1,3,2,6,5] y = [1,9,4,36,25] ผลลัพธ์จะเป็น True เพราะสำหรับแต่ละ x ค่า y ที่สอดคล้องคือกำลังสองของ x จึงเป็นฟังก์ชัน
ขั้นตอนการแก้ปัญหา
- mp := dictionary ใหม่
- for i ในช่วง 0 ถึง len(x):
- a := x[i], b := y[i]
- ถ้า a ไม่อยู่ใน mp: mp[a] := b
- มิฉะนั้น: คืนค่า False (เพราะ x เดียวมี y มากกว่าหนึ่งค่า)
- คืนค่า True
ตัวอย่างโค้ด
def solve(x, y):
mp = {}
for i in range(len(x)):
a = x[i]
b = y[i]
if a not in mp:
mp[a] = b
else:
return False
return True
x = [1,3,2,6,5]
y = [1,9,4,36,25]
print(solve(x, y))
อินพุต
[1,3,2,6,5], [1,9,4,36,25]
เอาต์พุต
True