Étant donné un ensemble de chaînes non vide et une liste de chaînes, découvrez combien de fois l'ensemble se produit dans la liste, c'est-à-dire combien de fois vous pouvez créer l'ensemble avec des éléments de la liste. Chaque élément de la liste ne peut être utilisé qu'une seule fois.
Astuce: un ensemble est une liste non ordonnée d'articles uniques.
Les règles d'entrée / sortie par défaut s'appliquent.
Aucune bibliothèque externe autorisée. Les bibliothèques standard du compilateur / interprète sont correctes. C'est le golf de code, donc la solution la plus courte compte.
Cas de test:
["apple", "banana"], ["apple", "pear", "apple", "banana", "banana"] => 2
["apple", "banana"], ["apple", "pear", "apple", "banana", "apple"] => 1
["apple", "banana", "pear"], ["apple", "banana", "kiwi", "apple"] => 0
["coconut"], [] => 0
EDIT: suppression d'une phrase indiquant que les paramètres d'entrée sont définis dans la portée locale. Cela contredit les règles d'E / S par défaut liées ci-dessus.
la source
Réponses:
Python, 30 octets
Essayez-le en ligne!
la source
lambda
en aprint
amène le nombre d'octets à 37 en raison des deuxinput()
s requis.Gelée , 4 octets
Essayez-le en ligne!
Comment?
la source
Gelée ,
654 octetsEssayez-le en ligne!
Le premier argument du programme est l'ensemble et le deuxième argument est la liste.
Explication
-1 octet grâce à @ETHproductions
-1 octet encore grâce à @ETHproductions
la source
⁹ċ$€Ṃ
j'ai le sentiment que je peux le raccourcir en utilisant l'argument implicite de droite à la place de⁹
...ċ@€Ṃ
fonctionne pour économiser un autre octet ... (l'@
inverse les argumentsċ
)Ɱ
à la place de@€
(avec des arguments inversés au programme) enregistre encore un autre octet: Essayez-le en ligne!JavaScript (ES6), 56 octets
Essayez-le en ligne
la source
n=>h=>Math.min(...n.map(c=>h.filter($=>$==c).length))
pour 53 octetsJavaScript (ES6), 64 octets
Suppose les deux
s
etl
sont des tableaux d'objets. Utilise une stricte égalité JavaScript pour les comparaisons, donc par exemple[] === []
est faux.la source
Haskell ,
3734 octetsMerci à @Laikoni d'avoir rasé trois octets.
Appelez avec
(set::[a]) # (list::[a])
oùa
n'importe quel type dérivantEq
.la source
length[y|y<-l,y==x]
vous pouvez utilisersum[1|y<-l,y==x]
.sum[1|y<-l,y==x,_<-y]
, ce qui fait deux octets de plus - je pourrais certainement manquer quelque chose là-basCJam , 11 octets
Essayez-le en ligne!
Explication
la source
Mathematica, 24 octets
Fonction pure prenant deux listes comme arguments dans l'ordre suggéré et retournant un entier non négatif.
Tally
compte le nombre d'occurrences de chaque symbole dans la liste d'entrée et#/.Rule@@@
convertit chaque élément de l'ensemble d'entrée en nombre d'occurrences correspondant.la source
T-SQL, 62
59octetsLa version précédente ne fonctionnait pas pour les ensembles sans correspondance
Avec s et l comme tables et colonnes nommées de la même manière que la table
la source
Swift, 39 octets
explication:
s.map{}
passe par chaque mot en s et produira un tableau de comptesw in
nomme le mot mappé à utiliser dans le filtre suivantl.filter{}
applique un filtre au tableau l$0==w
est le mot correspondant à la condition du filtre w.count
donne le nombre d'éléments de l qui remplissaient la condition.min()
renvoie le nombre le plus bas du résultat mappéla source
APL (Dyalog) , 9 octets
Essayez-le en ligne!
⎕
obtenir une entrée évaluée (liste de chaînes)⎕∘.≡
obtenir une entrée évaluée (ensemble de chaînes non vide) et créer une table d'équivalence+/
ajouter à travers⌊/
minimum à traversla source
Perl 6 ,
3718 octets37
Essayez-le
Étendu:
Voir Ensembles, sacs et mélanges pour plus d'informations.
18
Essayez-le
Explication:
@^b.Bag
créer un sac à partir de la{@^a}
clé de valeurs dans ce sac (retourne une liste de comptes).min
obtenir la valeur minimale de la liste résultantela source
Axiome, 42 octets
code de test et résultats
la source
C ++,
203201 octetsMerci à @Quentin d'avoir économisé deux octets!
Essayez-le en ligne!
la source
L.begin()
->begin(L)
enregistre un octet :)using T=std::vector<std::string>;
sauve aussi un autre! Qui savait que la jolie syntaxe moderne pourrait également aider au golf.PHP, 74 octets
Cas de test
PHP, 108 octets
Cas de test
la source
Pyth, 5 octets
Prend la liste en premier et le deuxième ensemble. Suite de tests.
Explication:
la source
C #, 36 octets
n
eth
sontstring[]
et la sortie est unint
.Essayez-le en ligne!
Cette réponse est inspirée par la logique de @ovs et @Alberto Rivera. Je vous remercie!
la source
Java, 135 octets
Ceci est mon premier défi et réponse de golf de code, donc je ne suis pas sûr du format. Doit-il s'agir d'un programme de compilation complet? Dois-je définir les paramètres? Suggestions appréciées.
EDIT : code encapsulé dans une fonction. Merci @Steadybox
la source
05AB1E , 7 octets
Essayez-le en ligne!
la source
Java, 114 octets
Tio arrive bientôt
Explication
crée la variable locale m.
mappe l'ensemble à un flux.
pour chaque élément, si le nombre d'occurrences de l'élément dans la liste est inférieur à m, m est défini sur cette valeur.
renvoie m, qui est le nombre de versions complètes de l'ensemble
la source
R 54 octets
Explication: création d'un tableau des décomptes uniquement des valeurs de la liste qui apparaissent également dans la sous-liste.
Je transforme ensuite la variable en facteur afin de générer des zéros si une valeur qui apparaît dans la sous-liste n'apparaît pas dans la liste. Enfin, je prends le minimum de comptes.
la source
R,
615744 octetsFonction anonyme.Apparemment, vous n'avez pas à définir de fonction pour ce défi. Enregistré 13 octets grâce au compte.Explication:
sum(l%in%x))
renvoie le nombre de fois où une chaînes
est trouvée dansl
.lapply(s,function(x))
applique cela à chaque chaînes
séparément et renvoie une liste de sommes.min()
renvoie le plus petit de cette liste.la source
z=c();for(i in s)z[i]=sum(l%in%i);min(z)
min(sapply(s,function(x)sum(l%in%x)))
JavaScript (ES6), 59 octets
Essayez-le
la source