[Python] Readable and Easy understand Bottom-Up DP solution in Python
\nclass Solution:\n    def minimumWhiteTiles(self, floor: str, numCarpets: int, carpetLen: int) -> int:\n        n = len(floor)\n        if carpetLen*numCarpets
```\nclass Solution:\n    def minimumWhiteTiles(self, floor: str, numCarpets: int, carpetLen: int) -> int:\n        n = len(floor)\n        if carpetLen*numCarpets >= n:\n            return 0\n        floorlist = []\n        for i in floor:\n            if i == \'1\':\n                floorlist.append(1)\n            else:\n                floorlist.append(0)\n        dp=[[0] * n for i in range(numCarpets)]\n        \n        for i in range(carpetLen, n):\n            dp[0][i] = min(floorlist[i] + dp[0][i-1], sum(floorlist[:i - carpetLen + 1]))\n        for j in range(1, numCarpets):\n            for i in range(carpetLen * j, n):\n                dp[j][i] = min(floorlist[i] + dp[j][i - 1], dp[j - 1][i - carpetLen])\n        return dp[-1][-1]\n```
['Dynamic Programming', 'Python']