class Solution(object):
def findMaxForm(self, strs, m, n):
"""
:type strs: List[str]
:type m: int
:type n: int
:rtype: int
"""
res = [[0 for x in range(n + 1)] for y in range(m + 1)]
print res
for s in strs:
nb_zero = s.count("0")
nb_one = s.count("1")
for i in range(m, nb_zero - 1, -1):
for j in range(n, nb_one - 1, -1):
res[i][j] = max(res[i][j], 1 + res[i - nb_zero][j - nb_one])
return res[m][n]
# print Solution().findMaxForm(strs=["10", "0001", "111001", "1", "0"], m=5, n=3)