Vous recevrez un tableau et devez renvoyer le nombre d'entiers qui se produisent plusieurs fois.
[234, 2, 12, 234, 5, 10, 1000, 2, 99, 234]
Cela renverra 2, puisque chacun de 234
et 2
apparaîtra plus d'une fois.
[234, 2, 12, 234]
[2, 12, 234, 5, 10, 1000, 2]
La liste ne comportera jamais plus de 100 000 entiers et les entiers à l'intérieur de la liste seront toujours compris entre -100 000 et 100 000.
Les entiers doivent être comptés s'ils se produisent plus d'une fois, donc si un entier se produit 3 fois, il ne comptera toujours que comme un entier répété.
Cas de test
[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
la source
la source
Once it counts the repetition, don't count again
? De plus, puisque nous voulons trouver la répétition d'un entier spécifique, comment saurions-nous quel entier rechercher si on ne le lui donne pas? Enfin, les cas de test sont un peu déroutants; qui sont sorties et qui sont entrées?Réponses:
R , 20 octets
C'est ce que tu cherches? Permet
table
de compter les occurrences de chacune desscan
valeurs d'entrée. Teste si le nombre est> 1 et additionne les vrais.Essayez-le en ligne!
la source
duplicated
premier - l'humbletable
est si utile pour le golf!Haskell , 42 octets
Essayez-le en ligne! Abuse le fait que les entiers de la liste sont garantis à l'intérieur de -100k et 100k.
la source
Bash + coreutils, 18
Essayez-le en ligne!
la source
APL (Dyalog Unicode) ,
98 octets SBCS-1 grâce à ngn
Fonction de préfixe tacite anonyme.
Essayez-le en ligne!
+/
somme de1<
si 1 est inférieur à…
⌸
Pour chaque élément unique:⊢∘
ignorer l'élément unique réel,≢
le nombre de ses occurrencesla source
{1<≢⍵}⌸
->1<⊢∘≢⌸
C (bruit)
17511795 bytesEssayez-le en ligne!
C'est la première fois que j'en soumets un, alors faites-moi savoir s'il y a des problèmes de mise en forme ou quoi que ce soit.
Mises à jour des commentaires:
soumission originale
la source
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;}
. Comme @ ASCII uniquement noté, lesinclude
s n'affectent pas la compilation de votre programmed;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 # (Visual C # Interactive Compiler) , 40 octets
Le premier brouillon de la spécification n'était pas clair, et j'ai pensé que cela signifiait retourner tous les éléments qui apparaissent plus d'une fois. Ceci est la version mise à jour.
D'une manière ou d'une autre, je n'ai pas remarqué que mon code renvoyait le nombre d'éléments apparus une fois. Merci à Paul Karam d'avoir attrapé ça!
Essayez-le en ligne!
la source
n=>n.GroupBy(c=>c).Count(c=>c.Count()>=2)
. L'OP dit que la réponse de cette liste est 2. Votre code retourne 5. Le changement que je vous ai donné retourne 2.>1
pour garder le nombre de 40 octetsPython 3 , 38 octets
Essayez-le en ligne!
la source
J ,
119 octets-2 octets grâce à Jonah!
Essayez-le en ligne!
Solution originale:
Essayez-le en ligne!
Explication:
la source
1#.1<1#.=
pour 9 octets + bon plaisir d'auto-classification.Rubis , 34 octets
Essayez-le en ligne!
la source
05AB1E , 4 octets
Essayez-le en ligne! ou comme suite de tests
Explication
la source
Gelée , 4 octets
Essayez-le en ligne!
...Ou
ĠIƇL
Comment?
IƇ
filtrerait pour ne conserver que les résultats véridiques deI
([[6],[3,6]]
) qui a également la longueur souhaitée.la source
Perl 6 , 15 octets
Essayez-le en ligne!
Assez explicite. Un bloc de code anonyme qui obtient le nombre (
+
)Set
des éléments parmi lesrepeated
éléments de l'entrée (*
).J'ai réalisé que j'avais publié presque la même solution exacte pour une question connexe.
la source
Python 3 , 63 octets
Essayez-le en ligne!
la source
Java 8,
7473 octetsEssayez-le en ligne.
Explication:
la source
APL (Dyalog Extended) ,
87 octets SBCSFonction de préfixe tacite anonyme utilisant la méthode de Jonah .
Essayez-le en ligne!
+/
le nombre total d'occurrenceslittéralement la somme des vérités
1<
où l'on est inférieur à∪
les éléments uniques »⍧
compter⊢
l'argument non modifiéla source
Haskell , 41 octets
Essayez-le en ligne!
Comptez les suffixes où le premier élément
h
apparaît exactement une fois dans la partie suivantet
.Haskell , 40 octets
Essayez-le en ligne!
Voler la méthode à partir d'autres réponses.
la source
Haskell, 41 octets
Cette solution compte essentiellement combien d'éléments de la liste le même élément apparaît exactement une fois plus tard dans la liste.
la source
Haskell , 47 octets
Essayez-le en ligne!
C'est l'approche naïve. Il y a probablement quelque chose qui pourrait être fait pour améliorer cela.
Nous revenons
0
pour la liste videDans le cas d'une liste non vide commençant par
a
puisb
.Si le filtrage
a
deb
est différent deb
(c'est-à-direa
estb
), nous renvoyons 1 de plusf
qu'appliquéb
avec lea
s filtré.Si le filtrage
a
ne change pas,b
nous parcourons simplementf
le reste.Voici une autre approche similaire qui a la même longueur:
Essayez-le en ligne!
la source
JavaScript (ES6), 40 octets
Essayez-le en ligne!
la source
Langue Wolfram 34 octets
Gather
regroupe des entiers identiques dans des listes.DeleteCases[...{x_}]
élimine les listes contenant un seul numéro.Length
renvoie le nombre de listes restantes (chacune contenant au moins deux entiers identiques.la source
Count[{_,__}]@*Gather
Japt ,
1211986 octetsAvec beaucoup d'aide de @ ASCII uniquement et des suggestions de @Shaggy et @Luis felipe De jesus Munoz.
Essayez-le en ligne!
la source
Pyth, 6 octets
Essayez-le ici
Explication
la source
Brachylog , 7 octets
Essayez-le en ligne!
Explication:
la source
PHP, 39 octets
une belle occasion d'utiliser des variables variables :
prend l'entrée des arguments de la ligne de commande. Courez avec
-nr
ou essayez-le en ligne .$argv[0]
est-
et qui n'apparaît qu'une seule fois dans les arguments, donc cela n'affecte pas le résultat.la source
Élément , 40 octets
Essayez-le en ligne!
Cela nécessite que l'entrée soit dans un format précis comme
[234, 2, 1000, 2, 99, 234]
(entouré[]
d'une virgule et d'un espace entre les entiers).Explication:
la source
Retina 0.8.2 , 19 octets
Essayez-le en ligne! Le lien comprend une suite de tests qui divise chaque ligne par des virgules. Explication:
Triez des valeurs égales ensemble.
Comptez le nombre d'exécutions d'au moins deux valeurs.
la source
Nettoyer ,
5954 octetsEssayez-le en ligne!
Trie la liste, regroupe les éléments égaux adjacents et compte le nombre avec plus d'un élément.
la source
Rouille, 126 octets
J'abandonne. C'est fondamentalement la même chose que Ruby. Il existe une "autre façon" de créer un tableau et de l'indexer en utilisant les valeurs du vecteur d'entrée, +100000, mais les conversions de type (comme usize / comme i32) prennent trop de place.
la source
MATL , 5 octets
Essayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
la source
k, 8 octets
+/1<#:'=
se lit comme suit: somme (longueur de chaque groupe)> 1
Exemple d'utilisation (premier cas de test)
écrit 4
la source