Recibirá una matriz y deberá devolver el número de enteros que se producen más de una vez.
[234, 2, 12, 234, 5, 10, 1000, 2, 99, 234]
Esto devolverá 2, ya que cada uno de 234
y 2
aparecerá más de una vez.
[234, 2, 12, 234]
[2, 12, 234, 5, 10, 1000, 2]
La lista nunca tendrá más de 100k enteros de largo, y los enteros dentro de la lista siempre estarán entre -100k y 100k.
Los enteros deben contarse si ocurren más de una vez, por lo que si un entero ocurre 3 veces, solo contará como un entero repetido.
Casos de prueba
[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
fuente
fuente
Once it counts the repetition, don't count again
? Además, dado que queremos encontrar la repetición de un número entero específico, ¿cómo sabríamos qué número entero buscar si no se nos da? Por último, los casos de prueba son un poco confusos; ¿Cuáles son las salidas y cuáles son las entradas?Respuestas:
R , 20 bytes
¿Es esto lo que buscas? Se utiliza
table
para contar las ocurrencias de cada uno de losscan
valores de entrada. Comprueba si el recuento es> 1 y suma las verdaderas.Pruébalo en línea!
fuente
duplicated
primero: ¡el humildetable
es muy útil para jugar golf!Haskell , 42 bytes
Pruébalo en línea! Abusa del hecho de que los enteros de la lista están garantizados dentro de -100k y 100k.
fuente
Bash + coreutils, 18
Pruébalo en línea!
fuente
APL (Dyalog Unicode) , SBCS de
98 bytes-1 gracias a ngn
Función de prefijo tácito anónimo.
Pruébalo en línea!
+/
la suma de1<
si 1 es menor que...
⌸
para cada elemento único:⊢∘
ignorando el elemento único real,≢
el recuento de sus ocurrenciasfuente
{1<≢⍵}⌸
->1<⊢∘≢⌸
C (sonido metálico)
17511795 bytesPruébalo en línea!
Esta es la primera vez que envío uno de estos, así que avíseme si hay algún problema con el formato o algo.
Actualizaciones de los comentarios:
presentación original
fuente
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 señaló @ ASCII, losinclude
correos electrónicos no afectan la compilación de su 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 interactivo de Visual C #) , 40 bytes
El primer borrador de la especificación no estaba claro, y pensé que significaba devolver todos los elementos que aparecen más de una vez. Esta es la versión actualizada.
De alguna manera no me di cuenta de que mi código devolvió la cantidad de elementos que aparecieron una vez. ¡Gracias a Paul Karam por atrapar eso!
Pruébalo en línea!
fuente
n=>n.GroupBy(c=>c).Count(c=>c.Count()>=2)
. El OP dice que la respuesta de esta lista es 2. Su código devuelve 5. El cambio que le di devuelve 2.>1
para mantener el conteo de 40 bytesPython 3 , 38 bytes
Pruébalo en línea!
fuente
J ,
119 bytes-2 bytes gracias a Jonah!
Pruébalo en línea!
Solución original:
Pruébalo en línea!
Explicación:
fuente
1#.1<1#.=
por 9 bytes + buena diversión de auto-clasificación.Ruby , 34 bytes
Pruébalo en línea!
fuente
05AB1E , 4 bytes
Pruébalo en línea! o como un conjunto de pruebas
Explicación
fuente
Jalea , 4 bytes
Pruébalo en línea!
...O
ĠIƇL
¿Cómo?
IƇ
se filtraría para mantener solo resultados verdaderos deI
([[6],[3,6]]
) que también tiene la longitud deseada.fuente
Perl 6 , 15 bytes
Pruébalo en línea!
Bastante autoexplicativo. Un bloque de código anónimo que obtiene el conteo (
+
) de losSet
elementos entre losrepeated
elementos de la entrada (*
).Me di cuenta de que publiqué casi la misma solución para una pregunta relacionada.
fuente
Python 3 , 63 bytes
Pruébalo en línea!
fuente
Java 8,
7473 bytesPruébalo en línea.
Explicación:
fuente
APL (Dyalog Extended) ,
87 bytes SBCSFunción de prefijo tácito anónimo utilizando el método de Jonah .
Pruébalo en línea!
+/
el número total de ocurrenciasliteralmente la suma de verdades
1<
donde uno es menor que∪
los elementos únicos⍧
Cuéntalo⊢
el argumento no modificadofuente
Haskell , 41 bytes
Pruébalo en línea!
Cuente los sufijos donde el primer elemento
h
aparece exactamente una vez en la partet
que viene después.Haskell , 40 bytes
Pruébalo en línea!
Robar el método de otras respuestas.
fuente
Haskell, 41 bytes
Esta solución básicamente cuenta cuántos elementos de la lista tienen el mismo elemento que aparece exactamente una vez más tarde en la lista.
fuente
Haskell , 47 bytes
Pruébalo en línea!
Este es el enfoque ingenuo. Es probable que se pueda hacer algo para mejorar esto.
Volvemos
0
por la lista vacíaEn el caso de una lista no vacía que comienza con
a
y luegob
.Si el filtrado
a
deb
es diferente deb
(es decir,a
está dentrob
), entonces devolvemos 1 más de lof
aplicadob
con losa
s filtrados.Si el filtrado de
a
s no cambiab
, simplemente nos encontramosf
con el resto.Aquí hay otro enfoque similar que tiene la misma longitud:
Pruébalo en línea!
fuente
JavaScript (ES6), 40 bytes
Pruébalo en línea!
fuente
Wolfram Language 34 bytes
Gather
agrupa enteros idénticos en listas.DeleteCases[...{x_}]
elimina listas que contienen un solo número.Length
devuelve el número de listas restantes (cada una con dos o más enteros idénticos).fuente
Count[{_,__}]@*Gather
Japt ,
1211986 bytesCon mucha ayuda de @ ASCII-Only, y sugerencias de @Shaggy y @Luis felipe De jesus Munoz.
Pruébalo en línea!
fuente
Pyth, 6 bytes
Pruébalo aquí
Explicación
fuente
Brachylog , 7 bytes
Pruébalo en línea!
Explicación:
fuente
PHP, 39 bytes
Una buena ocasión para usar variables variables :
toma datos de los argumentos de la línea de comandos. Ejecutar
-nr
o probarlo en línea .$argv[0]
es-
y eso aparece solo una vez en los argumentos, por lo que no afecta el resultado.fuente
Elemento , 40 bytes.
Pruébalo en línea!
Esto requiere que la entrada esté en un formato preciso como
[234, 2, 1000, 2, 99, 234]
(encerrado[]
con una coma y espacio entre enteros).Explicación:
fuente
Retina 0.8.2 , 19 bytes
Pruébalo en línea! Link incluye un conjunto de pruebas que divide cada línea en comas. Explicación:
Ordenar valores iguales juntos.
Cuente el número de corridas de al menos dos valores.
fuente
Limpio ,
5954 bytesPruébalo en línea!
Ordena la lista, agrupa elementos iguales adyacentes y cuenta el número con más de 1 elemento.
fuente
Óxido, 126 bytes
Me rindo. Esto es básicamente lo mismo que Ruby. Hay "otra forma" de crear una matriz e indexarla utilizando los valores en el vector de entrada, +100000, sin embargo, las conversiones de tipo (como usize / as i32) ocupan demasiado espacio.
fuente
MATL , 5 bytes
Pruébalo en línea! O verificar todos los casos de prueba .
Explicación
fuente
k, 8 bytes
+/1<#:'=
se lee como: suma (longitud de cada grupo)> 1
Ejemplo de uso (primer caso de prueba)
escribe 4
fuente