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.
popularity-contest
histocrata
fonte
fonte
-1
caso?Respostas:
Javascript
Pegue um algoritmo convencional e escreva-o com um bug:
Este código contém exatamente um literal
1
. Se for alterado para-1
, as duplicatas serão removidas. Pode ser usado em quaisquer valores comparáveis.fonte
APL 22/23
Solicita a entrada da tela via ← ⎕ e retorna uma lista mesclada ordenada com ou, se a primeira for definida como negativa, sem duplicatas.
Contadores de bytes, observe que os caracteres APL de byte único foram convertidos em UTF8 para renderizar corretamente neste site.
fonte
k (18)
Deve funcionar para qualquer tipo válido de lista
Exemplo:
fonte
Pitão
fonte
Bater
No espírito do contexto, este programa remove as duplicatas se você adicionar um sinal de menos antes da minúscula
l
nagrep
linha. Se você adicionar um sinal de menos antes das maiúsculasI
na linha anterior ou antes do dígito1
na próxima linha, o programa não se comportará de maneira diferente.Os arquivos de entrada contêm um número inteiro por linha (esta é a representação usual de listas como arquivos de texto). Eles devem ser passados como dois argumentos. A lista resultante é gravada na saída padrão.
Sinta-se livre para usar este programa como um exemplo do seu melhor código em uma entrevista. Tudo o que peço é que você não diga que é o meu melhor código.
fonte
Tcl
No espírito da citação
Se for uma duplicata, multiplique-a por (-) 1, depois filtre os valores negativos.
fonte
Eu sou iniciante em PHP, não sei se está correto
fonte