ホームページ >バックエンド開発 >Python チュートリアル >Python でウィークリー チャレンジ タスク 1 とゼロを解決する
Mohammad S. Anwar が主催する Weekly Challenge は、開発者が 2 つのタスクを解決することで競うフレンドリーなコンテストです。学習、共有、楽しみを通じて、あらゆる言語とレベルの開発者の参加を奨励します。
タスク 1: The Weekly Challenge の 1 とゼロでは、開発者は最大で x 個のゼロと y 個の 1 を含む最大のサブセットを見つけます。
この投稿では、タスク 1: 1 と 0 に対する Python 言語の解決策について説明し、提示し、短い結論で終わります。
バイナリ文字列の配列 @str と 2 つの整数 $x と $y が与えられます。
サブセット内に最大 $x 0 と $y 1 が存在するように、@str の最大サブセットのサイズを返すスクリプトを作成します。
m のすべての要素が n の要素でもある場合、集合 m は n の部分集合です。
ウィークリー チャレンジ 302、タスク 1: 1 とゼロ
例 1 と 2 は、指定された入力から予想される出力を示しています。
Input: @str = ("10", "0001", "111001", "1", "0") $x = 5 $y = 3 Output: 4
最大 5 つの 0 と 3 つの 1 を持つ最大のサブセット: ("10"、"0001"、"1"、"0")。
Input: @str = ("10", "1", "0") $x = 1 $y = 1 Output: 2
最大 1 つの 0 と 1 つの 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
私のソリューションでは、itertools.combinations、for ループ、if ステートメントを使用して、タスク要件に一致するサブセットを見つけます。
この投稿では、タスク 1: 1 と 0 について説明し、このタスクに対する私の解決策を示しました。
最新および過去のチャレンジの詳細については、The Weekly Challenge Web サイトをご覧ください:
https://theweeklychallenge.org/
The Weekly Challenge での競争に関するよくある質問:
https://theweeklychallenge.org/faq/
以上がPython でウィークリー チャレンジ タスク 1 とゼロを解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。