Le Weekly Challenge, organisé par Mohammad S. Anwar, est une compétition amicale dans laquelle les développeurs s'affrontent en résolvant une paire de tâches. Il encourage la participation des développeurs de toutes langues et de tous niveaux à travers l'apprentissage, le partage et le plaisir.
Tâche 1 : Les uns et les zéros du défi hebdomadaire charge les développeurs de trouver le plus grand sous-ensemble contenant au plus x zéros et y uns.
Dans cet article, je discute et présente ma solution en langage Python pour la tâche 1 : des uns et des zéros, et je termine par une brève conclusion.
Vous recevez un tableau de chaînes binaires, @str, et deux entiers, $x et $y.
Écrivez un script pour renvoyer la taille du plus grand sous-ensemble de @str de telle sorte qu'il y ait au plus $x 0 et $y 1 dans le sous-ensemble.
Un ensemble m est un sous-ensemble de n si tous les éléments de m sont également des éléments de n.
Le défi hebdomadaire 302, tâche 1 : des uns et des zéros
Les exemples 1 et 2 présentent les résultats attendus à partir d'entrées données.
Input: @str = ("10", "0001", "111001", "1", "0") $x = 5 $y = 3 Output: 4
Le plus grand sous-ensemble avec au plus cinq 0 et trois 1 : ("10", "0001", "1", "0").
Input: @str = ("10", "1", "0") $x = 1 $y = 1 Output: 2
Le plus grand sous-ensemble avec au plus un 0 et un 1 : ("1", "0").
from itertools import combinations def return_subset(strs: list[list], x: int, y: int) -> int | None: for r in range(len(strs) - 1, 1, -1): subsets = combinations(strs, r) for subset in subsets: total_zeros = 0 total_ones = 0 for element in subset: total_zeros += element.count('0') total_ones += element.count('1') if total_zeros <= x and total_ones <= y: return len(subset) return None
Ma solution utilise itertools.combinations, des boucles for et des instructions if pour trouver le sous-ensemble qui correspond aux exigences de la tâche :
Dans cet article, j'ai discuté de la tâche 1 : uns et zéros, et j'ai présenté ma solution à cette tâche.
Apprenez-en plus sur les défis les plus récents et passés sur le site Web The Weekly Challenge :
https://theweeklychallenge.org/
En savoir plus sur la participation à la FAQ du Défi hebdomadaire :
https://theweeklychallenge.org/faq/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!