Você receberá uma matriz e deve retornar o número de números inteiros que ocorrem mais de uma vez.
[234, 2, 12, 234, 5, 10, 1000, 2, 99, 234]
Isso retornará 2, já que cada um 234
e 2
aparecerá mais de uma vez.
[234, 2, 12, 234]
[2, 12, 234, 5, 10, 1000, 2]
A lista nunca terá mais de 100k números inteiros e os números inteiros dentro da lista sempre estarão entre -100k e 100k.
Os números inteiros devem ser contados se ocorrerem mais de uma vez; portanto, se um número inteiro ocorrer 3 vezes, ele ainda será contabilizado apenas como um número inteiro repetido.
Casos de teste
[1, 10, 16, 4, 8, 10, 9, 19, 2, 15, 18, 19, 10, 9, 17, 15, 19, 5, 13, 20] = 4
[11, 8, 6, 15, 9, 19, 2, 2, 4, 19, 14, 19, 13, 12, 16, 13, 0, 5, 0, 8] = 5
[9, 7, 8, 16, 3, 9, 20, 19, 15, 6, 8, 4, 18, 14, 19, 12, 12, 16, 11, 19] = 5
[10, 17, 17, 7, 2, 18, 7, 13, 3, 10, 1, 5, 15, 4, 6, 0, 19, 4, 17, 0] = 5
[12, 7, 17, 13, 5, 3, 4, 15, 20, 15, 5, 18, 18, 18, 4, 8, 15, 13, 11, 13] = 5
[0, 3, 6, 1, 5, 2, 16, 1, 6, 3, 12, 1, 16, 5, 4, 5, 6, 17, 4, 8] = 6
[11, 19, 2, 3, 11, 15, 19, 8, 2, 12, 12, 20, 13, 18, 1, 11, 19, 7, 11, 2] = 4
[6, 4, 11, 14, 17, 3, 17, 11, 2, 16, 14, 1, 2, 1, 15, 15, 12, 10, 11, 13] = 6
[0, 19, 2, 0, 10, 10, 16, 9, 19, 9, 15, 0, 10, 18, 0, 17, 18, 18, 0, 9] = 5
[1, 19, 17, 17, 0, 2, 14, 10, 10, 12, 5, 14, 16, 7, 15, 15, 18, 11, 17, 7] = 5
code-golf
array-manipulation
jayko03
fonte
fonte
Once it counts the repetition, don't count again
? Além disso, como queremos encontrar a repetição de um número inteiro específico, como saberíamos qual número inteiro procurar se não recebermos? Por fim, os casos de teste são um pouco confusos; quais são as saídas e quais são as entradas?Respostas:
R , 20 bytes
É isso que você procura? Usa
table
para contar as ocorrências de cada um dosscan
valores de entrada. Testa se a contagem é> 1 e soma as verdades.Experimente online!
fonte
duplicated
primeira - o humildetable
é tão útil para jogar golfe!Haskell , 42 bytes
Experimente online! Abusa do fato de que os números inteiros na lista são garantidos entre -100k e 100k.
fonte
Bash + coreutils, 18
Experimente online!
fonte
APL (Dyalog Unicode) ,
98 bytes SBCS-1 graças a ngn
Função de prefixo tácito anônimo.
Experimente online!
+/
soma de1<
se 1 é menor que…
⌸
Para cada elemento único:⊢∘
ignorando o elemento único real,≢
a contagem de suas ocorrênciasfonte
{1<≢⍵}⌸
->1<⊢∘≢⌸
C (clang)
17511795 bytesExperimente online!
Esta é a primeira vez que enviei uma delas. Entre em contato se houver algum problema com a formatação ou algo assim.
Atualizações dos comentários:
envio original
fonte
d,i;c(*a,*b){return*a-*b;}r(l[],m){qsort(l,m,4,c);for(i=d=0;++i<m;)d+=((l[i+1]-l[i]||i>m-2)&&l[i-1]==l[i]);return d;}
. Como observado apenas no ASCII, osinclude
s não afetam a compilação do seu programad;c(*a,*b){return*a-*b;}r(*l,m){qsort(l,m,4,c);for(d=0;~m--;)d+=(!m||l[1]-*l)&l[-1]==*l++;return d;}
c(*a,*b){return*a-*b;}r(*l,m){qsort(l,m,4,c);return((!m||l[1]-*l)&l[-1]==*l)+(m?r(l+1,m-1):0);}
C # (compilador interativo do Visual C #) , 40 bytes
O primeiro rascunho da especificação não era claro, e achei que significa devolver todos os elementos que aparecem mais de uma vez. Esta é a versão atualizada.
De alguma forma, eu não percebi que meu código retornava o número de elementos que apareceram uma vez. Obrigado a Paul Karam por entender isso!
Experimente online!
fonte
n=>n.GroupBy(c=>c).Count(c=>c.Count()>=2)
. O OP diz que a resposta desta lista é 2. Seu código retorna 5. A alteração que eu lhe dei retorna 2.>1
para manter a contagem de 40 bytesPython 3 , 38 bytes
Experimente online!
fonte
J ,
119 bytes-2 bytes graças a Jonah!
Experimente online!
Solução original:
Experimente online!
Explicação:
fonte
1#.1<1#.=
por 9 bytes + boa e divertida auto-classificação.Ruby , 34 bytes
Experimente online!
fonte
05AB1E , 4 bytes
Experimente online! ou como um conjunto de testes
Explicação
fonte
Gelatina , 4 bytes
Experimente online!
...Ou
ĠIƇL
Quão?
IƇ
filtraria para manter apenas os resultados verdadeiros deI
([[6],[3,6]]
) que também tenham o comprimento desejado.fonte
Perl 6 , 15 bytes
Experimente online!
Bastante auto-explicativo. Um bloco de código anônimo que obtém a contagem (
+
)Set
dos elementos entre osrepeated
elementos da entrada (*
).Percebi que publiquei quase exatamente a mesma solução para uma pergunta relacionada.
fonte
Python 3 , 63 bytes
Experimente online!
fonte
Java 8,
7473 bytesExperimente online.
Explicação:
fonte
APL (Dyalog Extended) ,
87 bytes SBCSFunção de prefixo tácito anônimo usando o método de Jonah .
Experimente online!
+/
o número total de ocorrênciasliteralmente a soma das verdades
1<
onde um é menor que∪
os elementos únicos '⍧
eu conto com⊢
o argumento não modificadofonte
Haskell , 41 bytes
Experimente online!
Contar sufixos onde o primeiro elemento
h
aparece exatamente uma vez na partet
que vem depois.Haskell , 40 bytes
Experimente online!
Roubando o método de outras respostas.
fonte
Haskell, 41 bytes
Esta solução basicamente conta quantos elementos da lista têm o mesmo elemento exatamente exatamente uma vez mais tarde na lista.
fonte
Haskell , 47 bytes
Experimente online!
Essa é a abordagem ingênua. É provável que algo possa ser feito para melhorar isso.
Voltamos
0
para a lista vaziaNo caso de uma lista não vazia, iniciando com
a
e depoisb
.Se a filtragem
a
deb
for diferente deb
(que estáa
inseridab
), retornamos 1 mais do que of
aplicadob
com osa
s filtrados.Se a filtragem
a
s não mudarb
, simplesmentef
atravessaremos o resto.Aqui está outra abordagem semelhante que tem o mesmo comprimento:
Experimente online!
fonte
JavaScript (ES6), 40 bytes
Experimente online!
fonte
Wolfram Language 34 bytes
Gather
agrupa números inteiros idênticos em listas.DeleteCases[...{x_}]
elimina listas contendo um único número.Length
retorna o número de listas restantes (cada uma contendo dois ou mais números inteiros idênticos.fonte
Count[{_,__}]@*Gather
Japonês ,
1211986 bytesCom muita ajuda de @ ASCII-Only e sugestões de @Shaggy e @Luis felipe De jesus Munoz.
Experimente online!
fonte
Pitão, 6 bytes
Experimente aqui
Explicação
fonte
Braquilog , 7 bytes
Experimente online!
Explicação:
fonte
PHP, 39 bytes
uma boa ocasião para usar variáveis variáveis :
recebe entrada dos argumentos da linha de comando. Corra com
-nr
ou experimente online .$argv[0]
é-
e aparece apenas uma vez nos argumentos, portanto não afeta o resultado.fonte
Elemento , 40 bytes
Experimente online!
Isso requer que a entrada esteja em um formato preciso, como
[234, 2, 1000, 2, 99, 234]
(incluído no[]
com uma vírgula e espaço entre números inteiros).Explicação:
fonte
Retina 0.8.2 , 19 bytes
Experimente online! O link inclui o conjunto de testes que divide cada linha em vírgulas. Explicação:
Classifique valores iguais juntos.
Conte o número de execuções de pelo menos dois valores.
fonte
Limpo ,
5954 bytesExperimente online!
Classifica a lista, agrupa elementos iguais adjacentes e conta o número com mais de 1 item.
fonte
Ferrugem, 126 bytes
Desisto. Isso é basicamente o mesmo que Ruby. Existe uma "outra maneira" de criar uma matriz e indexá-la usando os valores no vetor de entrada +100000; no entanto, as conversões de tipo (como usize / como i32) ocupam muito espaço.
fonte
MATL , 5 bytes
Experimente online! Ou verifique todos os casos de teste .
Explicação
fonte
k, 8 bytes
+/1<#:'=
lê como: soma (comprimento de cada grupo)> 1
Exemplo de uso (primeiro caso de teste)
escreve 4
fonte