每週挑戰賽由 Mohammad S. Anwar 組織,是一場友好的競賽,開發者透過解決兩個任務進行競爭。它鼓勵所有語言和級別的開發者透過學習、分享和娛樂來參與。
每週挑戰中的任務 1:1 和 0 要求開發人員找出最多包含 x 0 和 y 1 的最大子集。
在這篇文章中,我討論並展示了我的 Python 語言解決方案,任務 1:1 和 0,並總結了一個簡短的結論。
您將獲得一個二進位字串陣列 @str 和兩個整數 $x 和 $y。
寫一個腳本來傳回 @str 的最大子集的大小,使得子集中最多有 $x 0 和 $y 1。
如果 m 的所有元素也是 n 的元素,則集合 m 是 n 的子集。
每週挑戰 302,任務 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,並提出了該任務的解決方案。
在每週挑戰網站上了解有關最新和過去挑戰的更多資訊:
https://theweeklychallenge.org/
了解更多有關參加每週挑戰常見問題的資訊:
https://theweeklychallenge.org/faq/
以上是用 Python 解決每週挑戰任務 1 和 0的詳細內容。更多資訊請關注PHP中文網其他相關文章!