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

1. مقدمه
چالش هفتگی، که توسط محمد اس. انور سازماندهی شده است، یک مسابقه دوستانه است که در آن توسعه دهندگان با حل یک جفت کار به رقابت می پردازند. این برنامه توسعه دهندگان همه زبان ها و سطوح را از طریق یادگیری، اشتراک گذاری و سرگرمی تشویق می کند.
وظیفه 1: یکها و صفرها از The Weekly Challenge توسعه دهندگان را برای یافتن بزرگترین زیرمجموعه که حداکثر شامل x
صفر و y
آنهایی که
در این پست من راه حل زبان پایتون خود را در مورد Task 1: Ones و Zeroes ارائه می کنم و با یک نتیجه گیری کوتاه می نویسم.
2. وظیفه 1: یک ها و صفرها
به شما آرایه ای از رشته های باینری داده می شود،
@str
و دو عدد صحیح،$x
و$y
.یک اسکریپت بنویسید تا اندازه بزرگترین زیرمجموعه را برگرداند
@str
به گونه ای که حداکثر وجود دارد$x
0 و$y
1 در زیر مجموعه است.مجموعه 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/