[Python3] dp
Please pull this commit for solutions of biweekly 74. \n\n\nclass Solution:\n    def minimumWhiteTiles(self, floor: str, numCarpets: int, carpetLen: int) -> int
Please pull this [commit](https://github.com/gaosanyong/leetcode/commit/7e91381aab0f51486f380f703245463c99fed635) for solutions of biweekly 74. \n\n```\nclass Solution:\n    def minimumWhiteTiles(self, floor: str, numCarpets: int, carpetLen: int) -> int:\n        \n        @cache\n        def fn(i, n):\n            """Return min while tiles at k with n carpets left."""\n            if n < 0: return inf \n            if i >= len(floor): return 0 \n            if floor[i] == \'1\': return min(fn(i+carpetLen, n-1), 1 + fn(i+1, n))\n            return fn(i+1, n)\n        \n        return fn(0, numCarpets)\n```\n\n```\nclass Solution:\n    def minimumWhiteTiles(self, floor: str, numCarpets: int, carpetLen: int) -> int:\n        dp = [[0]*(1 + numCarpets) for _ in range(len(floor)+1)]\n        for i in range(len(floor)-1, -1, -1): \n            for j in range(0, numCarpets+1): \n                if floor[i] == \'1\': \n                    dp[i][j] = 1 + dp[i+1][j] \n                    if j: \n                        if i+carpetLen >= len(floor): dp[i][j] = 0 \n                        else: dp[i][j] = min(dp[i+carpetLen][j-1], dp[i][j])\n                else: dp[i][j] = dp[i+1][j]\n        return dp[0][numCarpets]\n```
['Python3']