Minimum Number of Flips to Make the Binary String Alternating LeetCode solution in Python

1
# Runtime: 631 ms (Top 87.94%) | Memory: 14.8 MB (Top 94.52%)
2
class Solution:
3
def minFlips(self, s: str) -> int:
4
prev = 0
5
start_1, start_0, start_1_odd, start_0_odd = 0, 0, sys.maxsize, sys.maxsize
6
odd = len(s) % 2
7
for val in s:
8
val = int(val)
9
if val == prev:
10
if odd:
11
start_0_odd = min(start_0_odd, start_1)
12
start_1_odd += 1
13
start_1 += 1
14
else:
15
if odd:
16
start_1_odd = min(start_1_odd, start_0)
17
start_0_odd += 1
18
start_0 += 1
19
prev = 1 - prev
20
return min([start_1, start_0, start_1_odd, start_0_odd])

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0