برنامه نویسی

حل چالش هفتگی 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/

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا