Cho hai list x (domain) và y (range) cùng kích thước. Kiểm tra xem ánh xạ x → y có phải là hàm số không (mỗi x chỉ ánh xạ tới đúng 1 y).
Ví dụ: x = [1,3,2,6,5], y = [1,9,4,36,25] → True (mỗi x ánh xạ đến bình phương của nó).
Thuật toán
- Duyệt qua các cặp
(x[i], y[i]). - Dùng dictionary
mplưu ánh xạ đã thấy. - Nếu
x[i]đã có trongmpnhưngmp[x[i]] != y[i]→ không phải hàm. - Nếu duyệt hết không vi phạm → là hàm.
Ví dụ mã nguồn
def solve(x, y):
mp = {}
for i in range(len(x)):
a, b = x[i], 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)) # True
Đầu vào / Đầu ra
Input: [1,3,2,6,5], [1,9,4,36,25]
Output: True