Esta anedota contém a seguinte troca intrigante:
"Tudo bem, Fred", Avi interrompeu. "Então, como você mudaria isso para evitar entradas duplicadas?"
"Oh, apenas mude esse lá para um negativo."
Embora essa alegação não seja precisa no contexto, pergunto-me se há algum código plausível para o qual isso faça sentido.
Seu desafio é escrever um código (um programa, uma função, qualquer que seja) que atenda a este critério:
- Mescla duas listas de entrada em uma, mantendo duplicatas. [editar: Você pode opcionalmente assumir que eles são números inteiros e / ou que as próprias listas são únicas. Você não pode assumir que os números inteiros são positivos (a única resposta que faz isso é o avô).]
- Um literal "1" aparece em algum lugar do código. Se você alterar isso para um literal "-1", o código fará a mesma coisa, mas removerá duplicatas.
- O código não se ramifica simplesmente de 1 / -1. Não estamos procurando
if (1 < 1) removeDuplicates()
ou[do_nothing, merge_with_dups, merge_without_dups][1].call()
, por exemplo.
A entrada e a saída podem estar em qualquer formato razoável que você escolher. Um exemplo pode ser
[1,2],[2,3]->[1,2,2,3]
antes da mudança do sinal e [1,2,3]
depois.
Este é um concurso de popularidade. Não é um código de golfe , a menos que você queira se exibir. Aceito a resposta mais votada em cerca de duas semanas.
-1
caso?