Giai thoại này chứa các trao đổi hấp dẫn sau đây:
"Tốt thôi, Fred," Avi ngắt lời. "Sau đó, làm thế nào bạn sẽ thay đổi điều này để tránh các mục trùng lặp?"
"Ồ, chỉ cần thay đổi cái đó thành một cái tiêu cực."
Mặc dù tuyên bố này không chính xác trong ngữ cảnh, tôi tự hỏi liệu có một số mã hợp lý mà có ý nghĩa hay không.
Thách thức của bạn là viết mã (một chương trình, một chức năng, bất cứ điều gì) phù hợp với tiêu chí này:
- Hợp nhất hai danh sách đầu vào thành một, giữ các bản sao. [chỉnh sửa: Bạn có thể tùy ý cho rằng chúng là số nguyên và / hoặc bản thân danh sách là duy nhất. Bạn không thể cho rằng các số nguyên là dương (câu trả lời duy nhất được thực hiện).]
- Một chữ "1" xuất hiện ở đâu đó trong mã. Nếu bạn thay đổi điều này thành "-1" theo nghĩa đen, mã sẽ thực hiện tương tự nhưng loại bỏ trùng lặp.
- Mã không chỉ đơn giản là phân nhánh của 1 / -1. Chúng tôi không tìm kiếm
if (1 < 1) removeDuplicates()
hoặc[do_nothing, merge_with_dups, merge_without_dups][1].call()
, ví dụ.
Đầu vào và đầu ra có thể ở bất kỳ định dạng hợp lý nào bạn chọn. Một ví dụ có thể là
[1,2],[2,3]->[1,2,2,3]
trước khi thay đổi dấu hiệu, và [1,2,3]
sau đó.
Đây là một cuộc thi phổ biến. Nó không phải là mã golf , trừ khi bạn muốn thể hiện. Tôi sẽ chấp nhận câu trả lời được bình chọn cao nhất trong khoảng hai tuần.
-1
trường hợp không?