2167. Minimum Time to Remove All Cars Containing Illegal Goods
On This Page
class Solution:
def minimumTime(self, s: str) -> int:
n = len(s)
pre = [0] * (n + 1)
suf = [0] * (n + 1)
for i, c in enumerate(s):
pre[i + 1] = pre[i] if c == '0' else min(pre[i] + 2, i + 1)
for i in range(n - 1, -1, -1):
suf[i] = suf[i + 1] if s[i] == '0' else min(suf[i + 1] + 2, n - i)
return min(a + b for a, b in zip(pre[1:], suf[1:]))