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%)2class Solution:3def minFlips(self, s: str) -> int:4prev = 05start_1, start_0, start_1_odd, start_0_odd = 0, 0, sys.maxsize, sys.maxsize6odd = len(s) % 27for val in s:8val = int(val)9if val == prev:10if odd:11start_0_odd = min(start_0_odd, start_1)12start_1_odd += 113start_1 += 114else:15if odd:16start_1_odd = min(start_1_odd, start_0)17start_0_odd += 118start_0 += 119prev = 1 - prev20return min([start_1, start_0, start_1_odd, start_0_odd])