Minimum Number of Swaps to Make the Binary String Alternating LeetCode solution in C++

1
class Solution {
2
int minFillPos(string &s, char ch, int current = 0) {
3
int count = 0;
4
for (int i = 0; i < s.size(); i += 2) {
5
if (s[i] != ch) count++;
6
}
7
return count;
8
}
9

10
public:
11
int minSwaps(string s) {
12
int oneCount = count(s.begin(), s.end(), '1');
13
int zeroCount = count(s.begin(), s.end(), '0');
14
if (abs(oneCount - zeroCount) > 1) return -1;
15
if (oneCount > zeroCount) return minFillPos(s, '1');
16
if (zeroCount > oneCount) return minFillPos(s, '0');
17
return min(minFillPos(s, '0'), minFillPos(s, '1'));
18
}
19
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0