حل چالش هفتگی 302 وظیفه 1: یک ها و صفرها در پایتون

1. مقدمه
چالش هفتگی، که توسط محمد اس. انور سازماندهی شده است، یک مسابقه دوستانه است که در آن توسعه دهندگان با حل یک جفت کار به رقابت می پردازند. این برنامه توسعه دهندگان همه زبان ها و سطوح را از طریق یادگیری، اشتراک گذاری و سرگرمی تشویق می کند.
وظیفه 1: یکها و صفرها از The Weekly Challenge توسعه دهندگان را برای یافتن بزرگترین زیرمجموعه که حداکثر شامل x صفر و y آنهایی که
در این پست من راه حل زبان پایتون خود را در مورد Task 1: Ones و Zeroes ارائه می کنم و با یک نتیجه گیری کوتاه می نویسم.
2. وظیفه 1: یک ها و صفرها
به شما آرایه ای از رشته های باینری داده می شود،
@strو دو عدد صحیح،$xو$y.یک اسکریپت بنویسید تا اندازه بزرگترین زیرمجموعه را برگرداند
@strبه گونه ای که حداکثر وجود دارد$x0 و$y1 در زیر مجموعه است.مجموعه m زیرمجموعه n است اگر همه عناصر m نیز عناصر n باشند.
چالش هفتگی 302، وظیفه 1: یک ها و صفرها
مثال های 1 و 2 خروجی های مورد انتظار از ورودی های داده شده را ارائه می دهند.
مثال 1
Input: @str = ("10", "0001", "111001", "1", "0")
$x = 5
$y = 3
Output: 4
بزرگترین زیر مجموعه با حداکثر پنج 0 و سه 1: (“10″، “0001”، “1”، “0”).
مثال 2
Input: @str = ("10", "1", "0")
$x = 1
$y = 1
Output: 2
بزرگترین زیر مجموعه با حداکثر یک 0 و یک 1: (“1″، “0”).
3. راه حل من برای کار 1
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
راه حل من استفاده می کند itertools.combinations، for حلقه ها، و if عبارات برای یافتن زیرمجموعه ای که با الزامات وظیفه مطابقت دارد:
- من استفاده می کنم
combinationsتابعی برای تولید همه زیر مجموعه هایstrsبا طولr. من با حداکثر طول زیر مجموعه شروع می کنم،r = len(strs) - 1و کاهش به کوچکترین طول زیر مجموعه،r = 1. - برای هر کدام
subsetاز طولr- من تعداد کل صفرها را می شمارم (
total_zeros) در زیر مجموعه. - من تعداد کل یک ها را می شمارم (
total_ones) در زیر مجموعه. - طول آن را برمی گردم
subsetاگر با شرایط لازم مطابقت داشته باشد (total_zeros <= x and total_ones <= y).
- من تعداد کل صفرها را می شمارم (
- اگر هیچ زیر مجموعه ای از
strs، سپس برمی گردمNone.
4. نتیجه گیری
در این پست در مورد Task 1: Ones و Zeroes بحث کردم و راه حل خود را برای این کار ارائه کردم.
در وب سایت The Weekly Challenge درباره آخرین و چالش های گذشته بیشتر بدانید:
https://theweeklychallenge.org/
درباره رقابت در سوالات متداول The Weekly Challenge بیشتر بدانید:
https://theweeklychallenge.org/faq/



