Dadas duas listas que não contêm elementos duplicados a
e b
, encontre o cruzamento entre as duas listas e produza um diagrama de Venn ASCII-Art. O diagrama de Venn usará uma versão quadriculada dos círculos tradicionais para simplificar.
Exemplo
Dado:
a = [1, 11, 'Fox', 'Bear', 333, 'Bee']
b = ['1', 333, 'Bee', 'SchwiftyFive', 4]
Saída (a ordem é 100% arbitrária, desde que o diagrama de Venn esteja correto):
+-----+----+-------------+
|11 |333 |SchwiftyFive |
|Fox |Bee |4 |
|Bear |1 | |
+-----+----+-------------+
O programa pode considerar '1' == 1
ou '1' != 1
, até sua implementação. Você também pode optar por manipular tudo como strings e aceitar apenas a entrada de strings.
Dado:
a=[]
b=[1,2,3]
Saída (observe como as duas partes vazias ainda têm o espaço no teclado direito):
+-+-+--+
| | |1 |
| | |2 |
| | |3 |
+-+-+--+
Dado:
a=[1]
b=[1]
Resultado:
+-+--+-+
| |1 | |
+-+--+-+
Regras
- Os elementos do diagrama de Venn são alinhados à esquerda e preenchidos com a entrada de comprimento máximo mais 1.
- A ordem dos elementos nas subseções do diagrama de Venn é arbitrária.
- Os cantos do diagrama de Venn (onde se
|
encontram-
) devem ser representados por a+
. - Você tem a garantia de que
a.join(b).length() > 0
, se os dois estiverem vazios, poderá fazer o que for.- Você pode até imprimir uma foto de Abe Lincoln, não se importe.
- Isso é código-golfe , arte ascii e teoria dos conjuntos .
Bônus
O carvão vegetal processa caixas como essa naturalmente, mas toda a teoria dos conjuntos parte ... Não sei o quão bem isso é feito. Recompensa de +100 pelo envio mais curto de carvão antes que eu possa adicionar uma recompensa à pergunta (dois dias depois de ser feita).
'1' == 1
é um pouco demais de um estiramento