Cabaran Mingguan, anjuran Mohammad S. Anwar, adalah pertandingan mesra di mana pembangun bersaing dengan menyelesaikan sepasang tugas. Ia menggalakkan penyertaan daripada pembangun semua bahasa dan peringkat melalui pembelajaran, perkongsian dan keseronokan.
Tugas 1: Ones and Zeroes dari The Weekly Challenge menugaskan pembangun untuk mencari subset terbesar yang mengandungi paling banyak x sifar dan y.
Dalam siaran ini saya membincangkan, dan membentangkan penyelesaian bahasa Python saya kepada, Tugasan 1: Ones and Zeroes, dan bungkus dengan kesimpulan ringkas.
Anda diberi tatasusunan rentetan binari, @str, dan dua integer, $x dan $y.
Tulis skrip untuk mengembalikan saiz subset terbesar @str supaya terdapat paling banyak $x 0 dan $y 1 dalam subset.
Himpunan m ialah subset bagi n jika semua unsur m juga merupakan unsur n.
Cabaran Mingguan 302, Tugasan 1: Satu dan Sifar
Contoh 1 dan 2 membentangkan output yang dijangkakan daripada input yang diberikan.
Input: @str = ("10", "0001", "111001", "1", "0") $x = 5 $y = 3 Output: 4
Subset terbesar dengan paling banyak lima 0 dan tiga 1: ("10", "0001", "1", "0").
Input: @str = ("10", "1", "0") $x = 1 $y = 1 Output: 2
Subset terbesar dengan paling banyak satu 0 dan satu 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
Penyelesaian saya menggunakan itertools.combinations, untuk gelung dan pernyataan if untuk mencari subset yang sepadan dengan keperluan tugas:
Dalam siaran ini saya membincangkan Tugasan 1: Satu dan Sifar, dan saya membentangkan penyelesaian saya untuk tugas ini.
Ketahui lebih lanjut tentang cabaran terkini dan lepas di tapak web The Weekly Challenge:
https://theweeklychallenge.org/
Ketahui lebih lanjut tentang bersaing di Soalan Lazim Cabaran Mingguan:
https://theweeklychallenge.org/faq/
Atas ialah kandungan terperinci Menyelesaikan Tugasan Cabaran Mingguan dan Sifar dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!