15 lines
453 B
Python
15 lines
453 B
Python
def find_max_form(strs, m, n):
|
|
dp = [[0] * (n + 1) for _ in range(m + 1)]
|
|
for s in strs:
|
|
z = s.count("0")
|
|
o = len(s) - z
|
|
for i in range(m, z - 1, -1):
|
|
for j in range(n, o - 1, -1):
|
|
dp[i][j] = max(dp[i][j], dp[i - z][j - o] + 1)
|
|
return dp[m][n]
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print(find_max_form(["10", "0001", "111001", "1", "0"], 5, 3))
|
|
print(find_max_form(["10", "0", "1"], 1, 1))
|