Mục tiêu của bạn là tính toán giao điểm đã đặt của hai danh sách số nguyên. Giao điểm được định nghĩa là nhóm số nguyên không theo thứ tự duy nhất được tìm thấy ít nhất một lần trong cả hai danh sách đầu vào.
Đầu vào
Đầu vào có thể ở bất kỳ định dạng nào mong muốn (tham số hàm, stdio, v.v.) và bao gồm hai danh sách các số nguyên. Bạn không giả định bất cứ điều gì về mỗi danh sách ngoài chúng có thể chứa bất kỳ số nguyên không âm nào (nghĩa là chúng không được sắp xếp, có thể chứa các bản sao, có thể có độ dài khác nhau và thậm chí có thể trống). Giả định rằng mỗi số nguyên sẽ phù hợp với loại số nguyên có chữ ký của ngôn ngữ của bạn, có thể dài hơn 1 chữ số thập phân và được ký.
Ví dụ đầu vào:
1 4 3 9 8 8 3 7 0
10 1 4 4 8 -1
Đầu ra
Đầu ra là bất kỳ danh sách nào giống như số nguyên biểu thị giao điểm đã đặt của hai danh sách theo bất kỳ định dạng nào mong muốn (giá trị trả về, stdio, v.v.). Không có yêu cầu rằng đầu ra phải được sắp xếp, mặc dù bạn được hoan nghênh cung cấp một triển khai luôn luôn được sắp xếp. Đầu ra phải tạo thành một tập hợp không có thứ tự hợp lệ (ví dụ: nó không được chứa bất kỳ giá trị trùng lặp nào).
Các trường hợp thử nghiệm ví dụ (lưu ý rằng thứ tự của đầu ra không quan trọng):
Hai dòng đầu tiên là danh sách đầu vào, dòng thứ ba là đầu ra. (empty)
biểu thị danh sách trống.
(empty)
(empty)
(empty)
1000
(empty)
(empty)
3 1 2 4 3 1 1 1 1 3
3 1 -1 0 8 3 3 1
1 3
1 2 1
3 3 4
(empty)
Chấm điểm
Đây là mã golf; câu trả lời ngắn nhất trong byte thắng.
Lỗ vòng tiêu chuẩn bị cấm. Bạn có thể sử dụng bất kỳ tính năng tích hợp nào không được thiết kế cho các hoạt động giống như thiết lập.
Các tính năng tích hợp bị cấm:
- thiết lập tạo / loại bỏ trùng lặp
- thiết lập sự khác biệt / giao lộ / liên minh
- Kiểm tra thành viên tổng quát (ví dụ: mọi thứ tương tự như
in
từ khóa trong Python,indexOf
giống như các hàm, v.v.). Lưu ý rằng việc sử dụng các cấu trúc "mục foreach trong danh sách" được cho phép (giả sử chúng không vi phạm bất kỳ hạn chế nào khác), mặc dù thực tế là Python sử dụng lạiin
từ khóa để tạo cấu trúc này. - Các phần tử tích hợp bị cấm này là "vi-rút", nghĩa là nếu có phần tích hợp lớn hơn chứa bất kỳ tính năng phụ nào thì nó cũng bị cấm tương tự (ví dụ: lọc theo tư cách thành viên trong danh sách).
Bất kỳ tích hợp nào không có trong danh sách trên đều được cho phép (ví dụ: sắp xếp, kiểm tra đẳng thức nguyên, liệt kê thêm / xóa theo chỉ mục, lọc, v.v.).
Ví dụ: lấy hai đoạn ví dụ sau (mã giống như Python):
# prohibited: filters by testing if each value in tmpList is a member of listA
result = tmpList.filter(listA)
# ok: filtering by a lambda which manually iterates over listA and checks for equality
def my_in_func(val, slist):
for a in slist:
if(val == a):
return True
return False
result = filter(lambda v: my_in_func(val, listA), tmpList)
Bạn có thể tự mình thực hiện bất kỳ tính năng nào giống như tập hợp này và chúng sẽ được tính vào điểm số của bạn.
Giải pháp của bạn nên hoàn thành trong một khoảng thời gian hợp lý (giả sử, chưa đến một phút cho bất kỳ phần cứng nào bạn có cho hai danh sách ~ độ dài 1000 mỗi danh sách).