Đưa ra hai danh sách không chứa các phần tử trùng lặp a
và b
tìm giao điểm giữa hai danh sách và đưa ra Sơ đồ Venn ASCII-Art. Biểu đồ Venn sẽ sử dụng một phiên bản vuông góc của các vòng tròn truyền thống để đơn giản.
Thí dụ
Được:
a = [1, 11, 'Fox', 'Bear', 333, 'Bee']
b = ['1', 333, 'Bee', 'SchwiftyFive', 4]
Đầu ra (Thứ tự là 100% tùy ý, miễn là Biểu đồ Venn đúng):
+-----+----+-------------+
|11 |333 |SchwiftyFive |
|Fox |Bee |4 |
|Bear |1 | |
+-----+----+-------------+
Chương trình có thể xem xét '1' == 1
hoặc '1' != 1
, tùy theo việc bạn thực hiện. Bạn cũng có thể chọn chỉ xử lý mọi thứ dưới dạng chuỗi và chỉ chấp nhận đầu vào chuỗi.
Được:
a=[]
b=[1,2,3]
Đầu ra (Lưu ý cách hai phần trống vẫn có khoảng trống ở bên phải):
+-+-+--+
| | |1 |
| | |2 |
| | |3 |
+-+-+--+
Được:
a=[1]
b=[1]
Đầu ra:
+-+--+-+
| |1 | |
+-+--+-+
Quy tắc
- Các yếu tố của Biểu đồ Venn được căn trái và được đệm vào mục nhập độ dài tối đa cộng với 1.
- Thứ tự của các phần tử trong các phần con của Biểu đồ Venn là tùy ý.
- Các góc của biểu đồ Venn (nơi
|
gặp nhau-
) phải được biểu diễn bằng a+
. - Bạn đang trốn tránh rằng
a.join(b).length() > 0
, nếu cả hai đều trống rỗng, bạn có thể làm bất cứ điều gì.- Bạn thậm chí có thể in một bức ảnh của Abe Lincoln, đừng quan tâm.
- Đây là code-golf , ascii-art và set-theory .
Tặng kem
Than làm cho các hộp như thế này một cách tự nhiên, nhưng toàn bộ phần lý thuyết ... Không biết nó làm tốt đến mức nào. +100 tiền thưởng cho lần gửi than ngắn nhất trước khi tôi có thể thêm tiền thưởng vào câu hỏi (2 ngày kể từ khi được hỏi).
'1' == 1
là hơi quá sức